zm_dev
liuliang 1 year ago
parent 8e2c9ba0f8
commit ad494d954b

@ -10,37 +10,25 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="baeb3dfb-5097-46c5-933e-6d1dab18b815" name="Changes" comment=""> <list default="true" id="baeb3dfb-5097-46c5-933e-6d1dab18b815" name="Changes" comment="">
<change afterPath="$PROJECT_DIR$/test/vocation/Test1.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/test/vocation/beforlog.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values.at" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values.at" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values.s" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values.s" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat_i" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat_i" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/WEB-INF/prop/weaver.properties" beforeDir="false" afterPath="$PROJECT_DIR$/WEB-INF/prop/weaver.properties" 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$/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/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/workflow/action/EliminationsAskForLeaveAction.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/workflow/action/EliminationsAskForLeaveAction.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/workflow/action/EliminationsEvctionCheckAction.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/workflow/action/EliminationsEvctionCheckAction.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/ComprehensiveWorkingHourServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/ComprehensiveWorkingHourServiceImpl.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/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/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/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/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/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/workflow/action/OvertimeResultCheckAction.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/workflow/action/OvertimeResultCheckAction.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/component/persongroup/service/impl/SchedulingResultsServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/component/persongroup/service/impl/SchedulingResultsServiceImpl.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$/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/attendance/workflow/cmd/GetKqCycleTimeIntervalCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/workflow/cmd/GetKqCycleTimeIntervalCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/workflow/service/impl/AskForLeaveServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/workflow/service/impl/AskForLeaveServiceImpl.java" 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$/src/com/engine/common/util/CommonUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/common/util/CommonUtil.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/workflow/action/askforleave/AskForLeaveWorkFlowArchivingAction.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/workflow/action/askforleave/AskForLeaveWorkFlowArchivingAction.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/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/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/workflow/cmd/GetKqCycleTimeIntervalCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/workflow/cmd/GetKqCycleTimeIntervalCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/service/impl/ComprehensiveWorkingHourServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/service/impl/ComprehensiveWorkingHourServiceImpl.class" afterDir="false" /> <change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/workflow/service/impl/AskForLeaveServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/workflow/service/impl/AskForLeaveServiceImpl.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/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/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/persongroup/service/impl/SchedulingResultsServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/persongroup/service/impl/SchedulingResultsServiceImpl.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/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/CommonUtil.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/common/util/CommonUtil.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/TestMethod.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/TestMethod.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/test/TestMethod.java" beforeDir="false" afterPath="$PROJECT_DIR$/test/TestMethod.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -117,21 +105,7 @@
<command value="organzationList" /> <command value="organzationList" />
</option> </option>
</component> </component>
<component name="RunManager" selected="JUnit.Test.testAnalysis"> <component name="RunManager" selected="Application.TestMethod">
<configuration name="Test (1)" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="shuju.Test" />
<module name="hrm-attendance" />
<shortenClasspath name="MANIFEST" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="shuju.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="Test1" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true"> <configuration name="Test1" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="vocation.Test1" /> <option name="MAIN_CLASS_NAME" value="vocation.Test1" />
<module name="hrm-attendance" /> <module name="hrm-attendance" />
@ -160,6 +134,14 @@
<option name="Make" enabled="true" /> <option name="Make" enabled="true" />
</method> </method>
</configuration> </configuration>
<configuration name="TestMethod" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="TestMethod" />
<module name="hrm-attendance" />
<shortenClasspath name="MANIFEST" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="TestObj" type="Application" factoryName="Application" nameIsGenerated="true"> <configuration name="TestObj" type="Application" factoryName="Application" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="TestObj" /> <option name="MAIN_CLASS_NAME" value="TestObj" />
<module name="hrm-attendance" /> <module name="hrm-attendance" />
@ -217,11 +199,11 @@
</configuration> </configuration>
<recent_temporary> <recent_temporary>
<list> <list>
<item itemvalue="Application.TestMethod" />
<item itemvalue="JUnit.Test.testAnalysis" /> <item itemvalue="JUnit.Test.testAnalysis" />
<item itemvalue="JUnit.Test1.test1" /> <item itemvalue="JUnit.Test1.test1" />
<item itemvalue="Application.Test1" /> <item itemvalue="Application.Test1" />
<item itemvalue="Application.TestMain" /> <item itemvalue="Application.TestMain" />
<item itemvalue="Application.Test (1)" />
</list> </list>
</recent_temporary> </recent_temporary>
</component> </component>
@ -608,7 +590,7 @@
<workItem from="1714360825186" duration="2936000" /> <workItem from="1714360825186" duration="2936000" />
<workItem from="1714368882623" duration="12755000" /> <workItem from="1714368882623" duration="12755000" />
<workItem from="1714442011339" duration="4482000" /> <workItem from="1714442011339" duration="4482000" />
<workItem from="1714455164627" duration="3821000" /> <workItem from="1714455164627" duration="15989000" />
</task> </task>
<servers /> <servers />
</component> </component>

@ -39,9 +39,23 @@ public class EliminationsAskForLeaveAction implements Action {
params.put("userId",xjr); params.put("userId",xjr);
params.put("submitDate", DateUtil.getCurrentDate()); params.put("submitDate", DateUtil.getCurrentDate());
Map<String,Object> dataMap = makeUpClockInService.getKqCycleTimeIntervalCmd(params); detailTableData = detailTableData.stream().filter(e->"1".equals(e.get("cx"))).collect(Collectors.toList());
List<String> detailIds = detailTableData.stream().map(e->e.get("cxlyid")).collect(Collectors.toList());
String sql = "select id,ksrq from uf_jcl_kq_qjjl_dt1 where (cxqj is null or cxqj <> '1') and id in ("+String.join(",",detailIds)+")";
List<Map<String, Object>> detailList = DbTools.getSqlToList(sql);
List<Map<String,Object>> dateList = (List<Map<String,Object>>)dataMap.get("data"); params.put("submitStr","ksrq");
params.put("submitDataList",detailList);
if (detailList == null || detailList.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");
boolean status = (boolean)dataMap.get("status"); boolean status = (boolean)dataMap.get("status");
if (!status){ if (!status){
@ -50,37 +64,20 @@ public class EliminationsAskForLeaveAction implements Action {
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!"); requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
return Action.FAILURE_AND_CONTINUE; return Action.FAILURE_AND_CONTINUE;
} }
if (dateList.size()==0){ if (closeList.size() > 0 || nocycleList.size() > 0){
log.error("申请人员当前时间没有考勤周期,请联系管理员!"); String message = "";
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222"); if (nocycleList.size() > 0){
requestInfo.getRequestManager().setMessagecontent("申请人员当前时间没有考勤周期,请联系管理员!"); message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
return Action.FAILURE_AND_CONTINUE;
}
detailTableData = detailTableData.stream().filter(e->"1".equals(e.get("cx"))).collect(Collectors.toList());
List<String> detailIds = detailTableData.stream().map(e->e.get("cxlyid")).collect(Collectors.toList());
String sql = "select id,ksrq from uf_jcl_kq_qjjl_dt1 where (cxqj is null or cxqj <> '1') and id in ("+String.join(",",detailIds)+")";
List<Map<String, Object>> detailList = DbTools.getSqlToList(sql);
for (Map<String, Object> detailTable:detailList){
String bdkrq = Util.null2String(detailTable.get("ksrq"));
boolean mark = true;
for (Map<String,Object> date:dateList){
//存在考勤周期内
String startDate = Util.null2String(date.get("startDate"));
String endDate = Util.null2String(date.get("endDate"));
if (DateUtil.getTime(startDate).compareTo(DateUtil.getTime(bdkrq)) <=0 &&
DateUtil.getTime(endDate).compareTo(DateUtil.getTime(bdkrq)) >=0){
mark = false;
} }
if (closeList.size() > 0){
List<String> list = closeList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已关账";
} }
if (mark){
//已关账
log.error("销假日期:{},已关账无法销假",bdkrq);
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222"); requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("销假日期:"+bdkrq+"不在当前月份对应考勤周期内无法再销假!"); requestInfo.getRequestManager().setMessagecontent(message);
return Action.FAILURE_AND_CONTINUE; return Action.FAILURE_AND_CONTINUE;
} }
}
return Action.SUCCESS; return Action.SUCCESS;
} }

@ -37,13 +37,31 @@ public class EliminationsEvctionCheckAction implements Action {
//销差人 //销差人
String xjr = mainTableData.get("xjr"); String xjr = mainTableData.get("xjr");
/**
*
*/
Map<String, Object> params = Maps.newHashMap(); Map<String, Object> params = Maps.newHashMap();
params.put("userId",xjr); params.put("userId",xjr);
params.put("submitDate", DateUtil.getCurrentDate()); params.put("submitDate", DateUtil.getCurrentDate());
Map<String,Object> dataMap = makeUpClockInService.getKqCycleTimeIntervalCmd(params);
List<Map<String,Object>> dateList = (List<Map<String,Object>>)dataMap.get("data"); detailTableData = detailTableData.stream().filter(e->"1".equals(e.get("cx"))).collect(Collectors.toList());
List<String> detailIds = detailTableData.stream().map(e->e.get("cxlyid")).collect(Collectors.toList());
String sql = "select id,ksrq from uf_jcl_kq_ccjl_dt1 where (cxcc is null or cxcc <> '1') and id in ("+String.join(",",detailIds)+")";
List<Map<String, Object>> detailList = DbTools.getSqlToList(sql);
params.put("submitStr","ksrq");
params.put("submitDataList",detailList);
if (detailList == null || detailList.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");
boolean status = (boolean)dataMap.get("status"); boolean status = (boolean)dataMap.get("status");
if (!status){ if (!status){
@ -52,37 +70,20 @@ public class EliminationsEvctionCheckAction implements Action {
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!"); requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
return Action.FAILURE_AND_CONTINUE; return Action.FAILURE_AND_CONTINUE;
} }
if (dateList.size()==0){ if (closeList.size() > 0 || nocycleList.size() > 0){
log.error("申请人员当前时间没有考勤周期,请联系管理员!"); String message = "";
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222"); if (nocycleList.size() > 0){
requestInfo.getRequestManager().setMessagecontent("申请人员当前时间没有考勤周期,请联系管理员!"); message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
return Action.FAILURE_AND_CONTINUE;
}
detailTableData = detailTableData.stream().filter(e->"1".equals(e.get("cx"))).collect(Collectors.toList());
List<String> detailIds = detailTableData.stream().map(e->e.get("cxlyid")).collect(Collectors.toList());
String sql = "select id,ksrq from uf_jcl_kq_ccjl_dt1 where (cxcc is null or cxcc <> '1') and id in ("+String.join(",",detailIds)+")";
List<Map<String, Object>> detailList = DbTools.getSqlToList(sql);
for (Map<String, Object> detailTable:detailList){
String bdkrq = Util.null2String(detailTable.get("ksrq"));
boolean mark = true;
for (Map<String,Object> date:dateList){
//存在考勤周期内
String startDate = Util.null2String(date.get("startDate"));
String endDate = Util.null2String(date.get("endDate"));
if (DateUtil.getTime(startDate).compareTo(DateUtil.getTime(bdkrq)) <=0 &&
DateUtil.getTime(endDate).compareTo(DateUtil.getTime(bdkrq)) >=0){
mark = false;
} }
if (closeList.size() > 0){
List<String> list = closeList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已关账";
} }
if (mark){
//已关账
log.error("销差日期:{},已关账无法销差",bdkrq);
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222"); requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("销差日期:"+bdkrq+"不在当前月份对应考勤周期内无法再销差!"); requestInfo.getRequestManager().setMessagecontent(message);
return Action.FAILURE_AND_CONTINUE; return Action.FAILURE_AND_CONTINUE;
} }
}
return Action.SUCCESS; return Action.SUCCESS;
} }

@ -14,6 +14,7 @@ import weaver.soa.workflow.request.RequestInfo;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* *
@ -35,10 +36,22 @@ public class EvctionCheckAction implements Action {
Map<String, Object> params = Maps.newHashMap(); Map<String, Object> params = Maps.newHashMap();
params.put("userId",ccr); params.put("userId",ccr);
params.put("submitDate",DateUtil.getCurrentDate()); params.put("submitDate",DateUtil.getCurrentDate());
params.put("submitStr","ksrq");
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); Map<String,Object> dataMap = makeUpClockInService.getKqCycleTimeIntervalCmd(params);
List<Map<String,Object>> closeList = (List<Map<String,Object>>)dataMap.get("closeList");
List<Map<String,Object>> dateList = (List<Map<String,Object>>)dataMap.get("data"); 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"); boolean status = (boolean)dataMap.get("status");
if (!status){ if (!status){
@ -47,34 +60,19 @@ public class EvctionCheckAction implements Action {
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!"); requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
return Action.FAILURE_AND_CONTINUE; return Action.FAILURE_AND_CONTINUE;
} }
if (dateList.size()==0){ if (closeList.size() > 0 || nocycleList.size() > 0){
log.error("申请人员当前时间没有考勤周期,请联系管理员!"); String message = "";
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222"); if (nocycleList.size() > 0){
requestInfo.getRequestManager().setMessagecontent("申请人员当前时间没有考勤周期,请联系管理员!"); message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
return Action.FAILURE_AND_CONTINUE;
}
for (Map<String, String> detailTable:detailTableData){
String bdkrq = detailTable.get("ksrq");
boolean mark = true;
for (Map<String,Object> date:dateList){
//存在考勤周期内
String startDate = Util.null2String(date.get("startDate"));
String endDate = Util.null2String(date.get("endDate"));
if (DateUtil.getTime(startDate).compareTo(DateUtil.getTime(bdkrq)) <=0 &&
DateUtil.getTime(endDate).compareTo(DateUtil.getTime(bdkrq)) >=0){
mark = false;
} }
if (closeList.size() > 0){
List<String> list = closeList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已关账";
} }
if (mark){
//已关账
log.error("出差日期:{},已关账无法提交出差",bdkrq);
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222"); requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("出差日期:"+bdkrq+"不在当前月份对应考勤周期内无法再提交出差!"); requestInfo.getRequestManager().setMessagecontent(message);
return Action.FAILURE_AND_CONTINUE; return Action.FAILURE_AND_CONTINUE;
} }
}
return Action.SUCCESS; return Action.SUCCESS;
} }
} }

@ -42,12 +42,23 @@ public class MakeUpClockInAction implements Action {
Map<String, Object> params = Maps.newHashMap(); Map<String, Object> params = Maps.newHashMap();
params.put("userId",userId); params.put("userId",userId);
params.put("submitDate",DateUtil.getCurrentDate()); 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); Map<String,Object> dataMap = makeUpClockInService.getKqCycleTimeIntervalCmd(params);
List<Map<String,Object>> dateList = (List<Map<String,Object>>)dataMap.get("data"); 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"); boolean status = (boolean)dataMap.get("status");
if (!status){ if (!status){
log.error("该人员没有考勤周期"); log.error("该人员没有考勤周期");
@ -55,34 +66,23 @@ public class MakeUpClockInAction implements Action {
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!"); requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
return Action.FAILURE_AND_CONTINUE; return Action.FAILURE_AND_CONTINUE;
} }
if (dateList.size()==0){ if (closeList.size() > 0 || nocycleList.size() > 0){
log.error("申请人员当前时间没有考勤周期,请联系管理员!"); String message = "";
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222"); if (nocycleList.size() > 0){
requestInfo.getRequestManager().setMessagecontent("申请人员当前时间没有考勤周期,请联系管理员!"); message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
return Action.FAILURE_AND_CONTINUE;
} }
try { if (closeList.size() > 0){
for (Map<String, String> detailTable:detailTableData){ List<String> list = closeList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
String bdkrq = detailTable.get("bdkrq"); message = message +String.join(",",list)+"对应的考勤周期的考勤周期已关账";
boolean mark = true;
for (Map<String,Object> date:dateList){
//存在考勤周期内
String startDate = Util.null2String(date.get("startDate"));
String endDate = Util.null2String(date.get("endDate"));
if (DateUtil.getTime(startDate).compareTo(DateUtil.getTime(bdkrq)) <=0 &&
DateUtil.getTime(endDate).compareTo(DateUtil.getTime(bdkrq)) >=0){
mark = false;
} }
}
if (mark){
//已关账
log.error("补打卡日期:{},已关账无法补打卡",bdkrq);
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222"); requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("补打卡日期:"+bdkrq+"不在当前月份对应考勤周期内无法再补打卡!"); requestInfo.getRequestManager().setMessagecontent(message);
return Action.FAILURE_AND_CONTINUE; return Action.FAILURE_AND_CONTINUE;
} }
} /**
*
*/
try {
Map<String,List<Map<String, String>>> dataGroupByBdlxs = Maps.newHashMap(); Map<String,List<Map<String, String>>> dataGroupByBdlxs = Maps.newHashMap();
//按照考勤周期对补打卡数据进行分类 //按照考勤周期对补打卡数据进行分类

@ -14,6 +14,7 @@ import weaver.soa.workflow.request.RequestInfo;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* *
@ -36,10 +37,22 @@ public class OvertimePlanCheckAction implements Action {
Map<String, Object> params = Maps.newHashMap(); Map<String, Object> params = Maps.newHashMap();
params.put("userId",jbry); params.put("userId",jbry);
params.put("submitDate",DateUtil.getCurrentDate()); params.put("submitDate",DateUtil.getCurrentDate());
params.put("submitStr","ksrq");
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); Map<String,Object> dataMap = makeUpClockInService.getKqCycleTimeIntervalCmd(params);
List<Map<String,Object>> closeList = (List<Map<String,Object>>)dataMap.get("closeList");
List<Map<String,Object>> dateList = (List<Map<String,Object>>)dataMap.get("data"); 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"); boolean status = (boolean)dataMap.get("status");
if (!status){ if (!status){
@ -48,33 +61,19 @@ public class OvertimePlanCheckAction implements Action {
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!"); requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
return Action.FAILURE_AND_CONTINUE; return Action.FAILURE_AND_CONTINUE;
} }
if (dateList.size()==0){ if (closeList.size() > 0 || nocycleList.size() > 0){
log.error("申请人员当前时间没有考勤周期,请联系管理员!"); String message = "";
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222"); if (nocycleList.size() > 0){
requestInfo.getRequestManager().setMessagecontent("申请人员当前时间没有考勤周期,请联系管理员!"); message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
return Action.FAILURE_AND_CONTINUE;
} }
if (closeList.size() > 0){
for (Map<String, String> detailTable:detailTableData){ List<String> list = closeList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
String bdkrq = detailTable.get("ksrq"); message = message +String.join(",",list)+"对应的考勤周期的考勤周期已关账";
boolean mark = true;
for (Map<String,Object> date:dateList){
//存在考勤周期内
String startDate = Util.null2String(date.get("startDate"));
String endDate = Util.null2String(date.get("endDate"));
if (DateUtil.getTime(startDate).compareTo(DateUtil.getTime(bdkrq)) <=0 &&
DateUtil.getTime(endDate).compareTo(DateUtil.getTime(bdkrq)) >=0){
mark = false;
} }
}
if (mark){
//已关账
log.error("加班计划日期:{},已关账无法提交",bdkrq);
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222"); requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("加班计划日期:"+bdkrq+"不在当前月份对应考勤周期内无法再提交!"); requestInfo.getRequestManager().setMessagecontent(message);
return Action.FAILURE_AND_CONTINUE; return Action.FAILURE_AND_CONTINUE;
} }
}
return Action.SUCCESS; return Action.SUCCESS;
} }

@ -5,6 +5,7 @@ import com.engine.attendance.workflow.service.impl.MakeUpClockInServiceImpl;
import com.engine.common.util.CommonUtil; import com.engine.common.util.CommonUtil;
import com.engine.common.util.DateUtil; import com.engine.common.util.DateUtil;
import com.engine.common.util.ServiceUtil; import com.engine.common.util.ServiceUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import weaver.general.Util; import weaver.general.Util;
@ -14,6 +15,7 @@ import weaver.soa.workflow.request.RequestInfo;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* *
@ -30,13 +32,21 @@ public class OvertimeResultCheckAction implements Action {
//加班人员 //加班人员
String jbry = mainTableData.get("jbry"); String jbry = mainTableData.get("jbry");
/**
*
*/
List<Map<String, Object>> submitDataList = Lists.newArrayList();
submitDataList.add(new HashMap(){{
put("ksrq",mainTableData.get("ksrq"));
}});
Map<String, Object> params = Maps.newHashMap(); Map<String, Object> params = Maps.newHashMap();
params.put("userId",jbry); params.put("userId",jbry);
params.put("submitDate",DateUtil.getCurrentDate()); params.put("submitDate",DateUtil.getCurrentDate());
params.put("submitStr","ksrq");
params.put("submitDataList",submitDataList);
Map<String,Object> dataMap = makeUpClockInService.getKqCycleTimeIntervalCmd(params); Map<String,Object> dataMap = makeUpClockInService.getKqCycleTimeIntervalCmd(params);
List<Map<String,Object>> closeList = (List<Map<String,Object>>)dataMap.get("closeList");
List<Map<String,Object>> dateList = (List<Map<String,Object>>)dataMap.get("data"); List<String> nocycleList = (List<String>)dataMap.get("nocycleList");
boolean status = (boolean)dataMap.get("status"); boolean status = (boolean)dataMap.get("status");
if (!status){ if (!status){
@ -45,30 +55,17 @@ public class OvertimeResultCheckAction implements Action {
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!"); requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
return Action.FAILURE_AND_CONTINUE; return Action.FAILURE_AND_CONTINUE;
} }
if (dateList.size()==0){ if (closeList.size() > 0 || nocycleList.size() > 0){
log.error("申请人员当前时间没有考勤周期,请联系管理员!"); String message = "";
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222"); if (nocycleList.size() > 0){
requestInfo.getRequestManager().setMessagecontent("申请人员当前时间没有考勤周期,请联系管理员!"); message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
return Action.FAILURE_AND_CONTINUE;
}
String bdkrq = mainTableData.get("ksrq");
boolean mark = true;
for (Map<String,Object> date:dateList){
//存在考勤周期内
String startDate = Util.null2String(date.get("startDate"));
String endDate = Util.null2String(date.get("endDate"));
if (DateUtil.getTime(startDate).compareTo(DateUtil.getTime(bdkrq)) <=0 &&
DateUtil.getTime(endDate).compareTo(DateUtil.getTime(bdkrq)) >=0){
mark = false;
} }
if (closeList.size() > 0){
List<String> list = closeList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已关账";
} }
if (mark){
//已关账
log.error("加班结果日期:{},已关账无法补打卡",bdkrq);
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222"); requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("加班结果日期:"+bdkrq+"不在当前月份对应考勤周期内无法再提交!"); requestInfo.getRequestManager().setMessagecontent(message);
return Action.FAILURE_AND_CONTINUE; return Action.FAILURE_AND_CONTINUE;
} }

@ -48,17 +48,25 @@ public class AskForLeaveWorkFlowSubmitAction implements Action {
List<Map<String, Object>> detailTable2 = Lists.newArrayList(); List<Map<String, Object>> detailTable2 = Lists.newArrayList();
/** /**
* *
*/ */
Map<String, Object> params = Maps.newHashMap(); Map<String, Object> params = Maps.newHashMap();
params.put("userId",qjry); params.put("userId",qjry);
params.put("submitDate",DateUtil.getCurrentDate()); params.put("submitDate",DateUtil.getCurrentDate());
params.put("submitStr","ksrq");
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); Map<String,Object> dataMap = makeUpClockInService.getKqCycleTimeIntervalCmd(params);
List<Map<String,Object>> closeList = (List<Map<String,Object>>)dataMap.get("closeList");
List<Map<String, Object>> dateList = (List<Map<String, Object>>) dataMap.get("data"); 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"); boolean status = (boolean)dataMap.get("status");
if (!status){ if (!status){
@ -67,33 +75,19 @@ public class AskForLeaveWorkFlowSubmitAction implements Action {
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!"); requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
return Action.FAILURE_AND_CONTINUE; return Action.FAILURE_AND_CONTINUE;
} }
if (dateList.size() == 0) { if (closeList.size() > 0 || nocycleList.size() > 0){
log.error("申请人员当前时间没有考勤周期,请联系管理员!"); String message = "";
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222"); if (nocycleList.size() > 0){
requestInfo.getRequestManager().setMessagecontent("申请人员当前时间没有考勤周期,请联系管理员!"); message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
return Action.FAILURE_AND_CONTINUE;
}
for (Map<String, String> detailTable : detailTableData) {
String bdkrq = detailTable.get("ksrq");
boolean mark = true;
for (Map<String, Object> date : dateList) {
//存在考勤周期内
String startDate = Util.null2String(date.get("startDate"));
String endDate = Util.null2String(date.get("endDate"));
if (DateUtil.getTime(startDate).compareTo(DateUtil.getTime(bdkrq)) <= 0 &&
DateUtil.getTime(endDate).compareTo(DateUtil.getTime(bdkrq)) >= 0) {
mark = false;
} }
if (closeList.size() > 0){
List<String> list = closeList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已关账";
} }
if (mark) {
//已关账
log.error("请假日期:{},已关账无法提交", bdkrq);
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222"); requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("请假日期:" + bdkrq + "不在当前月份对应考勤周期内无法再提交请假!"); requestInfo.getRequestManager().setMessagecontent(message);
return Action.FAILURE_AND_CONTINUE; return Action.FAILURE_AND_CONTINUE;
} }
}
/** /**
* *
*/ */

@ -9,13 +9,13 @@ import com.engine.common.util.Utils;
import com.engine.core.interceptor.CommandContext; import com.engine.core.interceptor.CommandContext;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import weaver.general.Util; import weaver.general.Util;
import weaver.hrm.company.DepartmentComInfo; import weaver.hrm.company.DepartmentComInfo;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.time.ZoneOffset;
import java.util.Map; import java.util.*;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Slf4j @Slf4j
@ -33,8 +33,19 @@ public class GetKqCycleTimeIntervalCmd extends AbstractCommonCommand<Map<String,
@Override @Override
public Map<String, Object> execute(CommandContext commandContext) { public Map<String, Object> execute(CommandContext commandContext) {
String userId = Util.null2String(params.get("userId")); String userId = Util.null2String(params.get("userId"));
String submitDates = Util.null2String(params.get("submitDate")); List<Map<String, Object>> submitDataList = (List<Map<String, Object>>)params.get("submitDataList");
log.info("GetKqCycleTimeIntervalCmd userId:[{}],submitDates:[{}]",userId,submitDates); String submitStr = Util.null2String(params.get("submitStr"));
//提交日期
String submitDate = Util.null2String(params.get("submitDate"));
Map<String,Object> resultMap = Maps.newHashMap();
resultMap.put("status",true);
Set<String> yearSet = Sets.newHashSet();
for (Map<String, Object> map : submitDataList){
yearSet.add(map.get(submitStr).toString().split("-")[0]);
}
log.info("GetKqCycleTimeIntervalCmd userId:[{}],submitDateList:[{}],submitStr:[{}]",userId,submitDataList,submitStr);
String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqzqmc"); String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqzqmc");
Set<String> attendanceSetIdsSets = CommonUtil.getDataIds(userId,modeId,null,null); Set<String> attendanceSetIdsSets = CommonUtil.getDataIds(userId,modeId,null,null);
@ -45,60 +56,75 @@ public class GetKqCycleTimeIntervalCmd extends AbstractCommonCommand<Map<String,
Map<String,Object> departMentMap = DbTools.getSqlToMap(sql,userId); Map<String,Object> departMentMap = DbTools.getSqlToMap(sql,userId);
String deptid = Util.null2String(departMentMap.get("departmentid")); String deptid = Util.null2String(departMentMap.get("departmentid"));
String pdeptids = ""; String pdeptids = "";
List<Map<String,Object>> dateList = Lists.newArrayList(); List<Map<String,Object>> closeList = Lists.newArrayList();
Map<String,Object> resultMap = Maps.newHashMap(); List<String> nocycleList = Lists.newArrayList();
resultMap.put("status",true); List<Map<String,Object>> dataList = Lists.newArrayList();
resultMap.put("data",dateList);
try { try {
pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(departMentMap.get("departmentid")), pdeptids); pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(departMentMap.get("departmentid")), pdeptids);
pdeptids = deptid + pdeptids; pdeptids = deptid + pdeptids;
log.info("pdeptids : [{}]",pdeptids); log.info("pdeptids : [{}]",pdeptids);
LocalDateTime nowLocalDateTime = DateUtil.getTime(submitDates);
int nowyear = nowLocalDateTime.getYear();
int nowMonth = nowLocalDateTime.getMonth().getValue();
LocalDateTime beforeLocalDateTime = DateUtil.getTime(submitDates).minusMonths(1); 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)+")";
int beforeYear = beforeLocalDateTime.getYear();
int beforeMonth = beforeLocalDateTime.getMonth().getValue();
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=? and a.yf=? or a.nd=? and a.yf=?)";
if (attendanceSetIdsSets.toArray().length == 0){ if (attendanceSetIdsSets.toArray().length == 0){
resultMap.put("status",false); resultMap.put("status",false);
return resultMap; return resultMap;
} }
List<Map<String,Object>> list = DbTools.getSqlToList(sql,attendanceSetIdsSets.toArray()[0],nowyear,nowMonth,beforeYear,beforeMonth); List<Map<String,Object>> list = DbTools.getSqlToList(sql,attendanceSetIdsSets.toArray()[0]);
log.info("GetKqCycleTimeIntervalCmd list : [{}]",list); log.info("GetKqCycleTimeIntervalCmd list : [{}]",list);
for (Map<String,Object> dataMap : list){ for (Map<String,Object> detailData:submitDataList){
String tsbm = Util.null2String(dataMap.get("tsbm")); 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);
if (cycleTime.size() > 0){
Map<String,Object> date = Maps.newHashMap();
date.put("startDate",cycleTime.get(0).get("ksrq"));
date.put("endDate",cycleTime.get(0).get("jsrq"));
dataList.add(date);
//0:待关账 1:已关账,2:已结账
String zt = Util.null2String(cycleTime.get(0).get("zt"));
String gzrq = Util.null2String(cycleTime.get(0).get("gzrq"));
String gzsj = Util.null2String(cycleTime.get(0).get("gzsj"));
String tsbm = Util.null2String(cycleTime.get(0).get("tsbm"));
String dtzt = Util.null2String(cycleTime.get(0).get("dtzt"));
String dtgzrq = Util.null2String(cycleTime.get(0).get("dtgzrq"));
String dtgzsj = Util.null2String(cycleTime.get(0).get("dtgzsj"));
if (!"".equals(tsbm) && CommonUtil.ifContainStr(pdeptids,tsbm,",")){ if (!"".equals(tsbm) && CommonUtil.ifContainStr(pdeptids,tsbm,",")){
//人员在特殊部门里 //人员在特殊部门里
String gzrq = Util.null2String(dataMap.get("dtgzrq")) +" "+Util.null2String(dataMap.get("dtgzsj")) +":00"; if ("1".equals(dtzt) || DateUtil.getTime(submitDate).compareTo(DateUtil.getTime(dtgzrq+" "+dtgzsj+":00")) >0){
if (DateUtil.getTime(submitDates).compareTo(DateUtil.getTime(gzrq))<=0){ //处于关账状态或提交日期大于关账时间
Map<String,Object> date = Maps.newHashMap(); closeList.add(new HashMap(){{
date.put("startDate",dataMap.get("ksrq")); put("rq",detailData.get(submitStr));
date.put("endDate",dataMap.get("jsrq")); put("cycle",cycleTime);
dateList.add(date); }});
} }
}else {
if ("1".equals(zt) || "2".equals(zt) || DateUtil.getTime(submitDate).compareTo(DateUtil.getTime(gzrq+" "+gzsj+":00")) >0){
//数据已关账或提交日期大于关账时间
closeList.add(new HashMap(){{
put("rq",detailData.get(submitStr));
put("cycle",cycleTime);
}});
} }
} }
}else {
for (Map<String,Object> dataMap : list){ nocycleList.add(detailData.get(submitStr).toString());
String gzrq = Util.null2String(dataMap.get("gzrq")) +" "+Util.null2String(dataMap.get("gzsj")) +":00";
if (DateUtil.getTime(submitDates).compareTo(DateUtil.getTime(gzrq))<=0){
Map<String,Object> date = Maps.newHashMap();
List<Map<String,Object>> filterDate = dateList.stream().filter(e->e.get("startDate").equals(dataMap.get("ksrq"))).collect(Collectors.toList());
if (filterDate.size() == 0){
date.put("startDate",dataMap.get("ksrq"));
date.put("endDate",dataMap.get("jsrq"));
dateList.add(date);
}
} }
} }
}catch (Exception e){ }catch (Exception e){
log.error("catch error :{}",e); log.error("catch error :{}",e);
} }
log.info("GetKqCycleTimeIntervalCmd dateList : [{}]",dateList); log.info("GetKqCycleTimeIntervalCmd closeList : [{}]",closeList);
log.info("GetKqCycleTimeIntervalCmd nocycleList : [{}]",nocycleList);
resultMap.put("closeList",closeList);
resultMap.put("nocycleList",nocycleList);
resultMap.put("dataList",dataList);
return resultMap; return resultMap;
} }

@ -1,7 +1,9 @@
import com.engine.common.util.DateUtil; import com.engine.common.util.DateUtil;
import com.engine.common.util.Utils;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import java.time.ZoneOffset; import java.time.ZoneOffset;
import java.util.Comparator; import java.util.Comparator;
@ -26,8 +28,21 @@ public class TestMethod {
// System.out.println(detailTableData); // System.out.println(detailTableData);
List<Map<String,Object>> list = Lists.newArrayList(); List<Map<String,Object>> list = Lists.newArrayList();
//double totalUnearnedLeave = list.stream().mapToDouble(e->Double.valueOf(e.get("wxsc").toString())).sum(); Map<String,Object> map1 = Maps.newHashMap();
map1.put("ksrq","2024-04-20");
Map<String,Object> map2 = Maps.newHashMap();
map2.put("ksrq","2024-04-21");
Map<String,Object> map3 = Maps.newHashMap();
map3.put("ksrq","2024-04-15");
Map<String,Object> map4 = Maps.newHashMap();
map4.put("ksrq","2024-04-14");
list.add(map1);
list.add(map2);
list.add(map3);
list.add(map4);
list = list.stream().sorted(Comparator.comparing(e->DateUtil.getTime(e.get("ksrq").toString()).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
// System.out.println(DateUtil.getTime("2024-04-14").toInstant(ZoneOffset.of("+8")).toEpochMilli());
System.out.println(list.addAll(null)); System.out.println(list);
} }
} }

Loading…
Cancel
Save