From 573d28693dd3b49cd9613d56b1f4c19b12a0c8f9 Mon Sep 17 00:00:00 2001 From: liuliang <401809302@qq.com> Date: Thu, 6 Mar 2025 10:11:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/MakeUpClockActionApi.java | 17 +++ .../workflow/KQDoDeleteProxyCmd.java | 2 + .../workflow/KQDoRepossessedProxyCmd.java | 2 + .../getclockInpoint/GetClockInPointCmd.java | 10 ++ .../cmd/workovertime/SaveWorkOverTimeCmd.java | 4 +- .../job/AttendanceAnalysisJob.java | 6 +- .../impl/ForgetClockInServiceImpl.java | 14 ++ .../web/AttendanceJucailinButtonAction.java | 4 + .../web/AttendanceSummaryApi.java | 6 + .../wrapper/AttendaceActionWrapper.java | 5 +- .../job/AttendanceCycleCloseJob.java | 3 +- .../ImportAndExport/web/ExcelController.java | 2 + .../service/impl/WorkRulesServiceImpl.java | 3 + .../job/scheduling/SchedulingJob.java | 2 + .../HolidayGenerationJob.java | 2 + .../tactics/ByIntervalPayMentWay.java | 2 +- .../tactics/BySchedulePaymentWay.java | 2 +- .../tactics/OneTimePayMentWay.java | 2 +- .../tactics/SinglePaymentInFullWay.java | 111 +++++++--------- .../vacation/util/VocationCommonUtil.java | 64 ++++++--- .../action/OvertimePlanCheckAction.java | 4 + .../workflow/cmd/GenerateMakeUpClockCmd.java | 88 +++++++++++++ .../service/MakeUpClockInService.java | 2 + .../service/impl/AskForLeaveServiceImpl.java | 7 +- .../impl/MakeUpClockInServiceImpl.java | 7 + .../attendance/workflow/web/AllowanceApi.java | 2 + .../workflow/web/MakeUpClockInAction.java | 18 +++ .../GetPersonVocationBySuitOrganzation.java | 124 ++---------------- .../common/util/ApiReturnTools.java | 6 +- .../jucailinkq/common/util/DateUtil.java | 6 + .../common/util/ExtensionClassHolder.java | 10 ++ .../common/util/ResponseResult.java | 4 + .../AskforCustomSearchTemplate.java | 95 ++++++++++++++ .../AttendanceResultCustomSearchTemplate.java | 94 +++++++++++++ .../ClockAgainCustomSearchTemplate.java | 94 +++++++++++++ .../EvectionCustomSearchTemplate.java | 95 ++++++++++++++ .../HolidayCustomSearchTemplate.java | 94 +++++++++++++ .../OverTimePlanCustomSearchTemplate.java | 94 +++++++++++++ .../OverTimeResultCustomSearchTemplate.java | 94 +++++++++++++ .../modeexpand/DeleteApplicableOrg.java | 2 + .../modeexpand/DeleteCheckCalendar.java | 2 + 41 files changed, 999 insertions(+), 206 deletions(-) create mode 100644 src/com/api/jucailinkq/attendance/workflow/MakeUpClockActionApi.java create mode 100644 src/com/engine/jucailinkq/attendance/workflow/cmd/GenerateMakeUpClockCmd.java create mode 100644 src/weaver/formmode/customjavacode/customsearch/jucailinkq/AskforCustomSearchTemplate.java create mode 100644 src/weaver/formmode/customjavacode/customsearch/jucailinkq/AttendanceResultCustomSearchTemplate.java create mode 100644 src/weaver/formmode/customjavacode/customsearch/jucailinkq/ClockAgainCustomSearchTemplate.java create mode 100644 src/weaver/formmode/customjavacode/customsearch/jucailinkq/EvectionCustomSearchTemplate.java create mode 100644 src/weaver/formmode/customjavacode/customsearch/jucailinkq/HolidayCustomSearchTemplate.java create mode 100644 src/weaver/formmode/customjavacode/customsearch/jucailinkq/OverTimePlanCustomSearchTemplate.java create mode 100644 src/weaver/formmode/customjavacode/customsearch/jucailinkq/OverTimeResultCustomSearchTemplate.java diff --git a/src/com/api/jucailinkq/attendance/workflow/MakeUpClockActionApi.java b/src/com/api/jucailinkq/attendance/workflow/MakeUpClockActionApi.java new file mode 100644 index 0000000..bed1e67 --- /dev/null +++ b/src/com/api/jucailinkq/attendance/workflow/MakeUpClockActionApi.java @@ -0,0 +1,17 @@ +package com.api.jucailinkq.attendance.workflow; + +import com.engine.jucailinkq.attendance.workflow.web.MakeUpClockInAction; +import com.engine.jucailinkq.attendance.workflow.web.OvertimePlanApi; +import lombok.extern.slf4j.Slf4j; + +import javax.ws.rs.Path; + +/** + * @Author: liuliang + * @Description: 加班计划流程 + * @Date: 2025/03/05 + **/ +@Path("/attendance/makeupclock") +@Slf4j +public class MakeUpClockActionApi extends MakeUpClockInAction { +} diff --git a/src/com/customization/jucailinkq/workflow/KQDoDeleteProxyCmd.java b/src/com/customization/jucailinkq/workflow/KQDoDeleteProxyCmd.java index 390bd85..5a894b6 100644 --- a/src/com/customization/jucailinkq/workflow/KQDoDeleteProxyCmd.java +++ b/src/com/customization/jucailinkq/workflow/KQDoDeleteProxyCmd.java @@ -5,6 +5,7 @@ import com.engine.core.interceptor.AbstractCommandProxy; import com.engine.core.interceptor.Command; import com.engine.jucailinkq.attendance.workflow.proxy.tactics.WorkFlowHandleTacis; import com.engine.jucailinkq.common.util.DbTools; +import com.engine.jucailinkq.common.util.ExtensionClassHolder; import com.engine.jucailinkq.common.util.Utils; import com.engine.workflow.cmd.monitor.DoDeleteCmd; import com.engine.workflow.cmd.monitor.DoRepossessedCmd; @@ -68,6 +69,7 @@ public class KQDoDeleteProxyCmd extends AbstractCommandProxy> } } } + ExtensionClassHolder.remove(); bb.writeLog("KQDoDeleteProxyCmd requestMap"+resultMap.toString()); return resultMap; } diff --git a/src/com/customization/jucailinkq/workflow/KQDoRepossessedProxyCmd.java b/src/com/customization/jucailinkq/workflow/KQDoRepossessedProxyCmd.java index 7cfc36f..af7ca32 100644 --- a/src/com/customization/jucailinkq/workflow/KQDoRepossessedProxyCmd.java +++ b/src/com/customization/jucailinkq/workflow/KQDoRepossessedProxyCmd.java @@ -5,6 +5,7 @@ import com.engine.core.interceptor.AbstractCommandProxy; import com.engine.core.interceptor.Command; import com.engine.jucailinkq.attendance.workflow.proxy.tactics.WorkFlowHandleTacis; import com.engine.jucailinkq.common.util.DbTools; +import com.engine.jucailinkq.common.util.ExtensionClassHolder; import com.engine.jucailinkq.common.util.Utils; import com.engine.workflow.cmd.monitor.DoRepossessedCmd; import weaver.conn.RecordSet; @@ -66,6 +67,7 @@ public class KQDoRepossessedProxyCmd extends AbstractCommandProxy gobalSet = ExtensionClassHolder.getGlobalSetMap(); + String clockInPointSet = Util.null2String(gobalSet.get("clockInPointSet")); + String signdateTime = beforeClcokInTimeMap.get("signdate") + " " + beforeClcokInTimeMap.get("signtime"); ClockPointDTO resetClcokDTO =null; @@ -366,6 +370,12 @@ public class GetClockInPointCmd extends AbstractCommonCommand insertParam = Maps.newHashMap(); insertParam.put("jbry",userId); insertParam.put("sjksrq",realityStartTime.split(" ")[0]); - insertParam.put("sjkssj",realityStartTime.split(" ")[1]); + insertParam.put("sjkssj",DateUtil.converHourAndMinute(realityStartTime)); insertParam.put("sjjsrq",realityEndime.split(" ")[0]); - insertParam.put("sjjssj",realityEndime.split(" ")[1]); + insertParam.put("sjjssj",DateUtil.converHourAndMinute(realityEndime)); if (scheduleMap.get("overtimePlanId") != null){ insertParam.put("jbjhid",scheduleMap.get("overtimePlanId")); } diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/job/AttendanceAnalysisJob.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/job/AttendanceAnalysisJob.java index 5a133ae..02a1704 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/job/AttendanceAnalysisJob.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/job/AttendanceAnalysisJob.java @@ -56,7 +56,7 @@ public class AttendanceAnalysisJob extends BaseCronJob { //查询所有在职人员 - String queryUserSql = "select id,departmentid,subcompanyid1,companystartdate,seclevel from hrmresource where status <> '5' and status <> '4' and status <> '7' and (belongto is null or belongto='-1')"; + String queryUserSql = "select id,departmentid,subcompanyid1,companystartdate,seclevel from hrmresource where status <> '5' and status <> '4' and status <> '7' and (belongto is null or belongto='-1' or belongto='0')"; List> userList = DbTools.getSqlToList(queryUserSql); @@ -66,7 +66,7 @@ public class AttendanceAnalysisJob extends BaseCronJob { List> departEmployeePartition = Lists.partition(departEmployeeList,200); for (List userIdPartition :departEmployeePartition){ - String sql = "select id,departmentid,subcompanyid1,companystartdate from hrmresource where id in ("+String.join(",",userIdPartition)+") and (belongto is null or belongto='-1')"; + String sql = "select id,departmentid,subcompanyid1,companystartdate from hrmresource where id in ("+String.join(",",userIdPartition)+") and (belongto is null or belongto='-1' or belongto='0')"; userList.addAll(DbTools.getSqlToList(sql)); } } @@ -269,7 +269,7 @@ public class AttendanceAnalysisJob extends BaseCronJob { needCleanParam.put("startDate",startDate); needCleanParam.put("endDate",endDate); commonService.CleanHaveLeaveUserDataCmd(needCleanParam); - + ExtensionClassHolder.remove(); log.info("********AttendanceAnalysisJob end********"); } diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ForgetClockInServiceImpl.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ForgetClockInServiceImpl.java index 146473d..79d18b5 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ForgetClockInServiceImpl.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ForgetClockInServiceImpl.java @@ -92,6 +92,20 @@ public class ForgetClockInServiceImpl extends Service implements ForgetClockInSe lateParam.put("workfor",Utils.getWorkFor(bdlx)); List> items = (List>)commandExecutor.execute(new AbsenteeismItemCmd(lateParam)).get("attendanceItems"); if (items.size() > 0){ + String zkgtj = Util.null2String(items.get(0).get("zkgtj")); + List> startmissCardlist = missCardlist.stream().filter(e->DateUtil.getTime(dtkssj).compareTo(DateUtil.getTime(e.get("pointTime").toString()))==0).collect(Collectors.toList()); + List> endmissCardlist = missCardlist.stream().filter(e->DateUtil.getTime(dtjssj).compareTo(DateUtil.getTime(e.get("pointTime").toString()))==0).collect(Collectors.toList()); + + if ("2".equals(zkgtj) && missCardlist.size()<2){ + //开始结束均没有打卡才进行转旷工 + continue; + }else if ("0".equals(zkgtj) && startmissCardlist.size()==0){ + //开始时间点没有打卡 + continue; + }else if ("1".equals(zkgtj) && endmissCardlist.size() == 0){ + //结束时间点没有打卡 + continue; + } //去除异常 abnormalList = abnormalList.stream().filter(e->{ for (Map map:abnormal){ diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceJucailinButtonAction.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceJucailinButtonAction.java index 0c01372..969daae 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceJucailinButtonAction.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceJucailinButtonAction.java @@ -21,6 +21,8 @@ import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; + +import com.engine.jucailinkq.common.util.ExtensionClassHolder; import lombok.extern.slf4j.Slf4j; import org.apache.commons.compress.utils.Lists; import weaver.common.DateUtil; @@ -75,6 +77,7 @@ public class AttendanceJucailinButtonAction { retmap.put("status", "-1"); return ApiReturnTools.error("500",SystemEnv.getHtmlLabelName(382661, user.getLanguage())); } + ExtensionClassHolder.remove(); return JSONObject.toJSONString(retmap); } @@ -122,6 +125,7 @@ public class AttendanceJucailinButtonAction { retmap.put("status", "-1"); retmap.put("message", SystemEnv.getHtmlLabelName(382661,user.getLanguage())); } + ExtensionClassHolder.remove(); return JSONObject.toJSONString(retmap); } diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceSummaryApi.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceSummaryApi.java index 744a3e0..61ed4dd 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceSummaryApi.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceSummaryApi.java @@ -6,6 +6,7 @@ import com.engine.jucailinkq.attendance.attendanceanalysis.service.AttendanceSum import com.engine.jucailinkq.attendance.attendanceanalysis.service.impl.AttendanceSummaryServiceImpl; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; +import com.engine.jucailinkq.common.util.ExtensionClassHolder; import weaver.general.BaseBean; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; @@ -42,6 +43,7 @@ public class AttendanceSummaryApi { Map apidatas = new HashMap(); User user = HrmUserVarify.getUser(request, response); apidatas = getAttendanceSummaryService(user).getCqSummarySearchCondition(ParamUtil.request2Map(request)); + ExtensionClassHolder.remove(); return JSONObject.toJSONString(apidatas, SerializerFeature.DisableCircularReferenceDetect); } @@ -58,6 +60,7 @@ public class AttendanceSummaryApi { Map apidatas = new HashMap(); User user = HrmUserVarify.getUser(request, response); apidatas = getAttendanceSummaryService(user).getCqSummaryReport(ParamUtil.request2Map(request)); + ExtensionClassHolder.remove(); return JSONObject.toJSONString(apidatas); } @@ -74,6 +77,7 @@ public class AttendanceSummaryApi { Map apidatas = new HashMap(); User user = HrmUserVarify.getUser(request, response); apidatas = getAttendanceSummaryService(user).addAttendanceSummary(ParamUtil.request2Map(request)); + ExtensionClassHolder.remove(); return JSONObject.toJSONString(apidatas); } @@ -95,6 +99,7 @@ public class AttendanceSummaryApi { apidatas.put("status", "-1"); bs.writeLog(e); } + ExtensionClassHolder.remove(); return JSONObject.toJSONString(apidatas); } @@ -105,6 +110,7 @@ public class AttendanceSummaryApi { Map apidatas = new HashMap(); User user = HrmUserVarify.getUser(request, response); apidatas = getAttendanceSummaryService(user).refreshViewAttendanceDaily(); + ExtensionClassHolder.remove(); return JSONObject.toJSONString(apidatas); } } diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/AttendaceActionWrapper.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/AttendaceActionWrapper.java index cf4896a..739eb18 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/AttendaceActionWrapper.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/AttendaceActionWrapper.java @@ -101,7 +101,7 @@ public class AttendaceActionWrapper extends Service { List> hxbzList = DbTools.getSqlToList(queryHxbz); - String queryUserSql = "select id,companystartdate,seclevel,departmentid,subcompanyid1 from hrmresource where status <> '5' and status <> '4' and status <> '7' and (belongto is null or belongto='-1')"; + String queryUserSql = "select id,companystartdate,seclevel,departmentid,subcompanyid1 from hrmresource where status <> '5' and status <> '4' and status <> '7' and (belongto is null or belongto='-1' or belongto='0')"; List> 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> dataList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate); @@ -221,7 +221,7 @@ public class AttendaceActionWrapper extends Service { String sql = "select id,userid,signdate,signtime from hrmschedulesign where isincom=1 and userid in ("+userIds+") and signdate >= ? and signdate <= ? order by signdate,signtime"; List> dataList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate); - String queryUserSql = "select id,companystartdate,seclevel,departmentid,subcompanyid1 from hrmresource where id in ("+userIds+") and (belongto is null or belongto='-1')"; + String queryUserSql = "select id,companystartdate,seclevel,departmentid,subcompanyid1 from hrmresource where id in ("+userIds+") and (belongto is null or belongto='-1' or belongto='0')"; List> userList = DbTools.getSqlToList(queryUserSql); Map>> userGroupMap = userList.stream().collect(Collectors.groupingBy(e->e.get("id").toString())); @@ -325,6 +325,7 @@ public class AttendaceActionWrapper extends Service { resultMap.put("code","500"); resultMap.put("message",e.getCause().getMessage()); } + ExtensionClassHolder.remove(); return resultMap; diff --git a/src/com/engine/jucailinkq/attendance/component/AttendanceCycle/job/AttendanceCycleCloseJob.java b/src/com/engine/jucailinkq/attendance/component/AttendanceCycle/job/AttendanceCycleCloseJob.java index 2e8055b..6af5683 100644 --- a/src/com/engine/jucailinkq/attendance/component/AttendanceCycle/job/AttendanceCycleCloseJob.java +++ b/src/com/engine/jucailinkq/attendance/component/AttendanceCycle/job/AttendanceCycleCloseJob.java @@ -1,6 +1,7 @@ package com.engine.jucailinkq.attendance.component.AttendanceCycle.job; import com.engine.jucailinkq.common.util.DbTools; +import com.engine.jucailinkq.common.util.ExtensionClassHolder; import com.time.util.DateUtil; import lombok.extern.slf4j.Slf4j; import weaver.general.Util; @@ -69,7 +70,7 @@ public class AttendanceCycleCloseJob extends BaseCronJob { boolean updateSign = DbTools.update(sql); log.info("AttendanceCycleCloseJob-考勤周期明细表更新状态结果:" + updateSign); } - + ExtensionClassHolder.remove(); log.info("********AttendanceCycleCloseJob end********"); } } diff --git a/src/com/engine/jucailinkq/attendance/component/ImportAndExport/web/ExcelController.java b/src/com/engine/jucailinkq/attendance/component/ImportAndExport/web/ExcelController.java index 898be15..3c1760b 100644 --- a/src/com/engine/jucailinkq/attendance/component/ImportAndExport/web/ExcelController.java +++ b/src/com/engine/jucailinkq/attendance/component/ImportAndExport/web/ExcelController.java @@ -4,6 +4,7 @@ import com.engine.jucailinkq.attendance.component.ImportAndExport.service.ExcelE import com.engine.jucailinkq.attendance.component.ImportAndExport.service.impl.ExcelExportImportServiceImpl; import com.engine.jucailinkq.attendance.component.ImportAndExport.service.param.ImportParam; import com.engine.common.util.ParamUtil; +import com.engine.jucailinkq.common.util.ExtensionClassHolder; import com.engine.jucailinkq.common.util.ResponseResult; import com.engine.common.util.ServiceUtil; import io.swagger.v3.oas.annotations.parameters.RequestBody; @@ -56,6 +57,7 @@ public class ExcelController { outputStream.flush(); }; response.setContentType("application/octet-stream"); + ExtensionClassHolder.remove(); return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build(); } diff --git a/src/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl.java b/src/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl.java index 11e65c9..baf144f 100644 --- a/src/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl.java +++ b/src/com/engine/jucailinkq/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl.java @@ -226,6 +226,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService { sqltj = Utils.converSQL(sqltj); log.info("getDepartSchedule sqltj : [{}]",sqltj); List> dataList = DbTools.getSqlToList(sqltj); + log.info("getDepartSchedule dataList : [{}]",dataList); for (Map dataMap :dataList){ String hrmId = Util.null2String(dataMap.get("id")); userIdMap.put(hrmId,date); @@ -241,6 +242,8 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService { userIdMap.put(map.get("id").toString(),startTime+","+endTime); } } + log.info("getDepartSchedule dataTable:[{}]",dataTable); + log.info("getDepartSchedule userIdMap:[{}]",userIdMap); for (int i=0;i map = dataTable.get(i); String id = Util.null2String(map.get("id")); diff --git a/src/com/engine/jucailinkq/attendance/component/persongroup/job/scheduling/SchedulingJob.java b/src/com/engine/jucailinkq/attendance/component/persongroup/job/scheduling/SchedulingJob.java index 91a2d3a..a44f337 100644 --- a/src/com/engine/jucailinkq/attendance/component/persongroup/job/scheduling/SchedulingJob.java +++ b/src/com/engine/jucailinkq/attendance/component/persongroup/job/scheduling/SchedulingJob.java @@ -3,6 +3,7 @@ package com.engine.jucailinkq.attendance.component.persongroup.job.scheduling; import com.engine.jucailinkq.attendance.component.persongroup.job.scheduling.tactics.RegularScheduling; import com.engine.jucailinkq.common.util.DateUtil; import com.engine.jucailinkq.common.util.DbTools; +import com.engine.jucailinkq.common.util.ExtensionClassHolder; import com.engine.jucailinkq.common.util.Utils; import lombok.extern.slf4j.Slf4j; @@ -51,5 +52,6 @@ public class SchedulingJob extends BaseCronJob { }catch (Exception e){ log.error("catch error: [{}]",e); } + ExtensionClassHolder.remove(); } } diff --git a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.java b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.java index 0b08303..1f38a8f 100644 --- a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.java +++ b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.java @@ -4,6 +4,7 @@ import com.engine.jucailinkq.attendance.vacation.service.VocationService; import com.engine.jucailinkq.attendance.vacation.service.impl.VocationServiceImpl; import com.engine.common.util.ServiceUtil; import com.engine.jucailinkq.common.util.CommonUtil; +import com.engine.jucailinkq.common.util.ExtensionClassHolder; import com.engine.jucailinkq.common.util.Utils; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; @@ -45,6 +46,7 @@ public class HolidayGenerationJob extends BaseCronJob { basicsetService.generateVocation(params); basicsetService.handleOverdueVocation(params); + ExtensionClassHolder.remove(); log.info("**********HolidayGenerationJob end ************"); } } diff --git a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java index 9f798d2..fe929c4 100644 --- a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java +++ b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/ByIntervalPayMentWay.java @@ -295,7 +295,7 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{ } VocationCommonUtil.computeRestTimeByjzrqzd(insertHoliDayParam,jzrqzd,companystartdate,wscl); - VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye", insertHoliDayParam,dataList,edyxq); + VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye", insertHoliDayParam,dataList,Integer.valueOf(vocationList.get(0).get("sxsxrqtqts").toString())); return insertHoliDayParam; } diff --git a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java index 04c4a5e..8a5f539 100644 --- a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java +++ b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/BySchedulePaymentWay.java @@ -221,7 +221,7 @@ public class BySchedulePaymentWay implements HolidayGenerationWay{ } VocationCommonUtil.computeRestTimeByjzrqzd(insertHoliDayParam,jzrqzd,companystartdate,wscl); - VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye",insertHoliDayParam,dataList,edyxq); + VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye",insertHoliDayParam,dataList,Integer.valueOf(vocationList.get(0).get("sxsxrqtqts").toString())); return insertHoliDayParam; } diff --git a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.java b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.java index 610b005..2cdfd2b 100644 --- a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.java +++ b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.java @@ -40,7 +40,7 @@ public class OneTimePayMentWay implements HolidayGenerationWay{ String fgrq= Util.null2String(vocationList.get(0).get("fgrq")); //额度依据 String edyj= Util.null2String(vocationList.get(0).get("edyj")); -// data.put("isOneTime","1"); + data.put("isOneTime","1"); if ("".equals(qsrq)){ return Maps.newHashMap(); diff --git a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java index 886b63f..9ee9503 100644 --- a/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java +++ b/src/com/engine/jucailinkq/attendance/vacation/job/holidaygeneration/tactics/SinglePaymentInFullWay.java @@ -7,13 +7,10 @@ import com.engine.jucailinkq.attendance.enums.StartingUnitEnum; import com.engine.jucailinkq.attendance.vacation.util.VocationCommonUtil; import com.engine.jucailinkq.common.exception.AttendanceRunTimeException; import com.engine.jucailinkq.common.util.DateUtil; -import com.engine.jucailinkq.common.util.DbTools; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import weaver.general.Util; -import javax.swing.text.DateFormatter; -import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.List; @@ -80,20 +77,17 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { if ("".equals(qsrq)){ return Maps.newHashMap(); } - if (!"1".equals(isOneTime)){ + // if (!"1".equals(isOneTime)){ qsrq = VocationCommonUtil.getAfterAdjustTime(qsrq, dzqsrq, fgrq); for (Map vocationMap : vocationList) { vocationMap.put("qsrqValue", qsrq); } - } + // } if (DateUtil.getTime(releaseDate).compareTo(DateUtil.getTime(qsrq)) < 0){ //releaseDate=qsrq; return Maps.newHashMap(); } - Map insertHoliDayParam = VocationCommonUtil.getInsertHoliDayParam(vocationList.get(0), userId, qsrq, releaseDate); - - //相差天数 int betweenDays = DateUtil.getBetWeenDays(qsrq, releaseDate.split(" ")[0]); //相差月份 @@ -102,15 +96,17 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { int allWorkDays = Double.valueOf(ljcrglyfslwz).intValue() * 30 + betweenDays; //总月数 int allMonths = betweenMonth + Double.valueOf(ljcrglyfslwz).intValue(); - //如果工龄直接取工龄字段值 - if ("2".equals(jgscsf)){ - allMonths = (int)(Double.valueOf(ljcrglyfslwz)*12); - if (allMonths == 0){ - //return insertHoliDayParam; - } + + + Map insertHoliDayParam = VocationCommonUtil.getInsertHoliDayParam(vocationList.get(0), userId, qsrq, releaseDate); + List> dataList = null; + if ("1".equals(isOneTime)){ + dataList = VocationCommonUtil.ifisOneTimeexist("uf_jcl_kq_jqye", insertHoliDayParam); + + }else { + dataList = VocationCommonUtil.ifexist("uf_jcl_kq_jqye", insertHoliDayParam); } - List> dataList = VocationCommonUtil.ifexist("uf_jcl_kq_jqye", insertHoliDayParam); - // List> dataList = new ArrayList<>(); + // List> dataList = new ArrayList<>(); //已存在数据且不覆盖 if (dataList.size()>0 && !"1".equals(cover)) { @@ -229,23 +225,9 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { Map vocationMap = VocationCommonUtil.getVocationMap(vocationList, allWorkDays, yjzd,userId); restTime = vocationMap.size()>0?Double.valueOf(vocationMap.get("edktsc").toString()):0; } - restTime = VocationCommonUtil.handleRestDays(restTime,wscl); - if("102".equals(pjjb)){ - String sql = "UPDATE UF_JCL_KQ_JQYE SET KTSC = 120 - " + restTime + " WHERE JQID = 101 AND KTSC + " + restTime + " > 120 AND YGID = " + userId + " AND sxrq = '" + sxrq + "'"; - DbTools.update(sql); - } - if("101".equals(pjjb)){ - String sql = "SELECT KTSC FROM UF_JCL_KQ_JQYE ujkj WHERE JQID = 102 AND ygid = " + userId + " AND sxrq = '" + sxrq + "'"; - Map tmpres = DbTools.getSqlToMap(sql); - if (tmpres.size()>0) { - double restTime0 = Double.valueOf(tmpres.get("ktsc").toString()); - if (restTime0 + restTime > 120) - restTime = 120 - restTime0; - } - } insertHoliDayParam.put("ktsc", restTime); - if (!"1".equals(isOneTime)){ + // if (!"1".equals(isOneTime)){ //离职日期 //入职日期 List> userList = (List>)data.get("userList"); @@ -257,8 +239,9 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { } VocationCommonUtil.computeRestTimeByjzrqzd(insertHoliDayParam,jzrqzd,companystartdate,wscl); - VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye", insertHoliDayParam,dataList,edyxq); - } + + VocationCommonUtil.updateHolidayBalance("uf_jcl_kq_jqye", insertHoliDayParam,dataList,Util.null2String(vocationList.get(0).get("sxsxrqtqts")).equals("")?0:Integer.valueOf(vocationList.get(0).get("sxsxrqtqts").toString())); + // } return insertHoliDayParam; } @@ -275,44 +258,43 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { String wscl = Util.null2String(vocationList.get(0).get("wscl")); //间隔时长算法 String jgscsf = Util.null2String(vocationList.get(0).get("jgsc")); - //累计工龄数或者直取工龄数 - int seniority = 0; - //累计时长单位:0:年;1:月 - String ljgldw = Util.null2String(vocationList.get(0).get("lsgldw")); - if(!"2".equals(jgscsf)) { - //间隔时长不为直取工龄时,进行取整处理 todo:实际上累计工龄为年时 基本上都是有小数的 ,都不应该取整 ,这里的逻辑有待优化 - seniority = "".equals(ljcrglyfslwz) ? 0 : Double.valueOf(ljcrglyfslwz).intValue(); - } + + int seniority = "".equals(ljcrglyfslwz)?0:Double.valueOf(ljcrglyfslwz).intValue(); + double restTime=0.0; //折算 if (changeMethodEnum == QuotaChangeMethodEnum.CONVERT){ - int beginYear = 0; - int endYear = 0; - String divideTime = ""; - if("2".equals(jgscsf)) { + int beginYearMonth = DateUtil.getBetWeenMonths(qsrq,sxrq); + if (beginYearMonth < 0){ + beginYearMonth = 0; + } + beginYearMonth = beginYearMonth+seniority; + int endYearMonth = DateUtil.getBetWeenMonths(qsrq,nextSxrq); + endYearMonth = endYearMonth+seniority; + int beginYear = beginYearMonth/12; + int endYear = endYearMonth/12; + + //残年分割日期 + String divideTime = DateUtil.beforeMonth(qsrq,seniority); + //divideTime = sxrq.split("-")[0]+"-"+divideTime.split("-")[1]+"-"+divideTime.split("-")[2]; + divideTime = DateUtil.nextYear(divideTime,endYear,DateUtil.yyyyMMdd); + if (jgscsf.equals("2")){ //直接取工龄字段 - beginYear = Double.valueOf(ljcrglyfslwz).intValue(); + beginYear = seniority/12; endYear = beginYear+1; - DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - double divdemonths = Double.valueOf(ljcrglyfslwz) - Double.valueOf(ljcrglyfslwz).intValue(); - divideTime = DateUtil.nextMonth(sxrq,12-(int)Math.ceil(divdemonths*12),dateTimeFormatter); - //LocalDateTime localDateTime = DateUtil.getTime(sxrq); - //localDateTime = localDateTime.plusMonths((int)Math.ceil(divdemonths*12)); - //divideTime = localDateTime.format(dateTimeFormatter); - }else { - int beginYearMonth = DateUtil.getBetWeenMonths(qsrq, sxrq); - if (beginYearMonth < 0) { - beginYearMonth = 0; + + //分割日期 + int month = DateUtil.getBetWeenMonths(qsrq,sxrq); + if (month < 0){ + month = 0; } - beginYearMonth = beginYearMonth + seniority; - int endYearMonth = DateUtil.getBetWeenMonths(qsrq, nextSxrq); - endYearMonth = endYearMonth + seniority; - beginYear = beginYearMonth / 12; - endYear = endYearMonth / 12; - //残年分割日期 - divideTime = DateUtil.beforeMonth(qsrq,seniority); + int historySeniority = seniority-month<0?0:seniority-month; + + divideTime = DateUtil.beforeMonth(qsrq,historySeniority); divideTime = sxrq.split("-")[0]+"-"+divideTime.split("-")[1]+"-"+divideTime.split("-")[2]; } + + Map beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd,userId); Map endYearmap = VocationCommonUtil.getVocationMap(vocationList, endYear, yjzd,userId); double beginEdktsc = Double.valueOf(beginYearmap.get("edktsc") == null? "0" :Util.null2String(beginYearmap.get("edktsc"))); @@ -352,12 +334,13 @@ public class SinglePaymentInFullWay implements HolidayGenerationWay { restTime = VocationCommonUtil.handleRestDays(beforeRestTime+afterRestTime,wscl); } } + }else { //不折算 int beginYear = 0; if (jgscsf.equals("2")){ //直接取工龄字段 - beginYear = Double.valueOf(ljcrglyfslwz).intValue(); + beginYear = seniority/12; }else { //起算日期与当前日期间隔+工龄字段 int beginYearMonth = DateUtil.getBetWeenMonths(qsrq,sxrq); diff --git a/src/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.java b/src/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.java index 5e628c7..56b93fd 100644 --- a/src/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.java +++ b/src/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.java @@ -318,6 +318,7 @@ public class VocationCommonUtil { //执行发放的时间点 String ffdtffsj = Util.null2String(vocationMap.get("ffdtffsj")); + param.put("lyid",vocationMap.get("dataid")); param.put("jqid",vocationMap.get("jb")); param.put("ygid",userId); @@ -446,7 +447,7 @@ public class VocationCommonUtil { }else if (edyxq.equals(StartingUnitEnum.NATURAL_DAY.getKey())){ String sxrq = DateUtil.AfterDay(ffsj.split(" ")[0],0); param.put("sxrq",sxrq); - param.put("jzrq",sxrq); + param.put("jzrq",DateUtil.AfterDay(sxrq,edyxqsz-1)); } if (BalanceHandleEnum.DELAY.getKey().equals(jywxcl)){ @@ -475,10 +476,11 @@ public class VocationCommonUtil { * @param tableName 假期余额表名 * @param dataMap 参数 */ - public static void updateHolidayBalance(String tableName,Map dataMap,List> dataList,String edyxq){ + public static void updateHolidayBalance(String tableName,Map dataMap,List> dataList,int sxsxrqtqts){ log.debug("updateHolidayBalance dataMap:[{}]",dataMap); try { + String lyid = Util.null2String(dataMap.get("lyid")); String ygid = Util.null2String(dataMap.get("ygid")); String jqid = Util.null2String(dataMap.get("jqid")); @@ -492,23 +494,25 @@ public class VocationCommonUtil { dataMap.put("yqsc",0); dataMap.put("yqyxsc",0); dataMap.put("zfsc",0); + dataMap.put("sxrq",DateUtil.beforeDay(sxrq,sxsxrqtqts)); + dataMap.put("jzrq",DateUtil.beforeDay(jzrq,sxsxrqtqts)); //查询上一笔假期余额是否有透支情况 String queryBeforeHolidaySql = "select id,yxsc,wxsc,ktsc,ztsc,zfsc,modedatacreatedate,modedatacreatetime from uf_jcl_kq_jqye where ygid=? and jqid=? order by modedatacreatedate desc ,modedatacreatetime desc"; - String beforeSxrq = ""; - String beforeJzrq = ""; - if (edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey()) || edyxq.equals(StartingUnitEnum.STARTING_YEAR.getKey())){ - beforeSxrq = DateUtil.beforeYear(sxrq,1,DateUtil.yyyyMMdd); - beforeJzrq = DateUtil.beforeYear(jzrq,1,DateUtil.yyyyMMdd); - }else if (edyxq.equals(StartingUnitEnum.NATURAL_MONTH.getKey()) || edyxq.equals(StartingUnitEnum.STARTING_MONTH.getKey())){ - beforeSxrq = DateUtil.beforeMonth(sxrq,1); - beforeJzrq = DateUtil.beforeMonth(jzrq,1); - }else if (edyxq.equals(StartingUnitEnum.NATURAL_WEEK.getKey()) || edyxq.equals(StartingUnitEnum.STARTING_WEEK.getKey())){ - beforeSxrq = DateUtil.beforeDay(sxrq,7); - beforeJzrq = DateUtil.beforeDay(jzrq,7); - }else if (edyxq.equals(StartingUnitEnum.NATURAL_DAY.getKey())){ - beforeSxrq = DateUtil.beforeDay(sxrq,1); - beforeJzrq = DateUtil.beforeDay(jzrq,1); - } +// String beforeSxrq = ""; +// String beforeJzrq = ""; +// if (edyxq.equals(StartingUnitEnum.NATURAL_YEAR.getKey()) || edyxq.equals(StartingUnitEnum.STARTING_YEAR.getKey())){ +// beforeSxrq = DateUtil.beforeYear(sxrq,1,DateUtil.yyyyMMdd); +// beforeJzrq = DateUtil.beforeYear(jzrq,1,DateUtil.yyyyMMdd); +// }else if (edyxq.equals(StartingUnitEnum.NATURAL_MONTH.getKey()) || edyxq.equals(StartingUnitEnum.STARTING_MONTH.getKey())){ +// beforeSxrq = DateUtil.beforeMonth(sxrq,1); +// beforeJzrq = DateUtil.beforeMonth(jzrq,1); +// }else if (edyxq.equals(StartingUnitEnum.NATURAL_WEEK.getKey()) || edyxq.equals(StartingUnitEnum.STARTING_WEEK.getKey())){ +// beforeSxrq = DateUtil.beforeDay(sxrq,7); +// beforeJzrq = DateUtil.beforeDay(jzrq,7); +// }else if (edyxq.equals(StartingUnitEnum.NATURAL_DAY.getKey())){ +// beforeSxrq = DateUtil.beforeDay(sxrq,1); +// beforeJzrq = DateUtil.beforeDay(jzrq,1); +// } List> beforeHolidayBalanceList = DbTools.getSqlToList(queryBeforeHolidaySql,ygid,jqid); double beforewxsc = 0; @@ -582,6 +586,32 @@ public class VocationCommonUtil { } + return dataList; + } + /** + * 该周期是否已存在 + * @param tableName + * @param dataMap + * @return + */ + public static List> ifisOneTimeexist(String tableName,Map dataMap){ + log.debug("ifexist dataMap:[{}]",dataMap); + String lyid = Util.null2String(dataMap.get("lyid")); + String ygid = Util.null2String(dataMap.get("ygid")); + String jqid = Util.null2String(dataMap.get("jqid")); + String sxrq = Util.null2String(dataMap.get("sxrq")); + String jzrq = Util.null2String(dataMap.get("jzrq")); + String vacationRepeat = Util.null2String(ExtensionClassHolder.getGlobalSetMap().get("vacationRepeat")); + String sql = "select id,ffsj,ktsc,yxsc,wxsc,ztsc,zfsc,yqsc,yqyxsc,yqsxrq from "+tableName +" where lyid=? and ygid=? and jqid=? and sxrq=? "; + List> dataList = null; + if (vacationRepeat.equals("1")){ + sql = "select id,ffsj,ktsc,yxsc,wxsc,ztsc,zfsc,yqsc,yqyxsc,yqsxrq from "+tableName +" where ygid=? and jqid=? and sxrq=? "; + dataList = DbTools.getSqlToList(sql,ygid,jqid,sxrq); + }else { + dataList = DbTools.getSqlToList(sql,lyid,ygid,jqid,sxrq); + } + + return dataList; } diff --git a/src/com/engine/jucailinkq/attendance/workflow/action/OvertimePlanCheckAction.java b/src/com/engine/jucailinkq/attendance/workflow/action/OvertimePlanCheckAction.java index d0a54a3..975fb8c 100644 --- a/src/com/engine/jucailinkq/attendance/workflow/action/OvertimePlanCheckAction.java +++ b/src/com/engine/jucailinkq/attendance/workflow/action/OvertimePlanCheckAction.java @@ -314,6 +314,10 @@ public class OvertimePlanCheckAction implements Action { } + //修改加班时长 + double totaljbsc = detailTableData.stream().mapToDouble(e->Double.valueOf(e.get("jbsc"))).sum(); + sql = "update "+ requestInfo.getRequestManager().getBillTableName()+" set jbsc=? where requestid=?"; + DbTools.update(sql,totaljbsc,requestid); }catch (Exception e){ log.error("OvertimePlanCheckAction error : [{}]",e); return Action.FAILURE_AND_CONTINUE; diff --git a/src/com/engine/jucailinkq/attendance/workflow/cmd/GenerateMakeUpClockCmd.java b/src/com/engine/jucailinkq/attendance/workflow/cmd/GenerateMakeUpClockCmd.java new file mode 100644 index 0000000..a5f9a7c --- /dev/null +++ b/src/com/engine/jucailinkq/attendance/workflow/cmd/GenerateMakeUpClockCmd.java @@ -0,0 +1,88 @@ +package com.engine.jucailinkq.attendance.workflow.cmd; + +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.common.util.ServiceUtil; +import com.engine.core.interceptor.CommandContext; +import com.engine.jucailinkq.attendance.attendanceanalysis.service.UtilService; +import com.engine.jucailinkq.attendance.attendanceanalysis.service.impl.UtilServiceImpl; +import com.engine.jucailinkq.attendance.enums.CheckBoxEnum; +import com.engine.jucailinkq.common.util.DateUtil; +import com.engine.jucailinkq.common.util.DbTools; +import com.engine.jucailinkq.common.util.Utils; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import weaver.general.Util; +import weaver.hrm.User; + +import java.time.ZoneOffset; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class GenerateMakeUpClockCmd extends AbstractCommonCommand> { + private UtilService utilService = ServiceUtil.getService(UtilServiceImpl.class); + + public GenerateMakeUpClockCmd(Map params) { + this.params = params; + } + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + String bdkxm = Util.null2String(params.get("bdkxm")); + String ksrq = Util.null2String(params.get("ksrq")); + String jsrq = Util.null2String(params.get("jsrq")); + String bdkry = Util.null2String(params.get("bdkry")); + List empidList = Lists.newArrayList(); + String querClasssql = "select a.xxbdkzdjb,a.sfxx,a.id bcxx,a.edsc,a.zgzsc,a.bcsdxx,a.sfdx,a.sfkt,b.bdlx,a.btgz,a.fgsjd,a.zddxfz,a.dxhs,b.kssj dtkssj,b.jssj dtjssj,b.ksdk,b.jsdk,b.tqdkfzs,b.thdkfzs,b.edxss,b.edfzs,b.edts,b.sfdx dtsfdx,b.zddxfz dtzddxfz,b.dxhs dtdxhs,b.gsrq from uf_jcl_kq_bcxx a left join uf_jcl_kq_bcxx_dt1 b on a.id=b.mainid"; + List> allClassInfoList = DbTools.getSqlToList(querClasssql); + empidList.add(bdkry); + Map>> data = utilService.getScheduleInfoWithEmpId(empidList,ksrq,jsrq); + List> scheduleList = data.get(bdkry); + List> resultList = Lists.newArrayList(); + for (Map scheduleMap:scheduleList){ + String bcxx = Util.null2String(scheduleMap.get("bcxx")); + String bcrq = Util.null2String(scheduleMap.get("bcrq")); + if (!"".equals(bcxx)){ + List> classList = allClassInfoList.stream().filter(e->e.get("bcxx").equals(bcxx)).collect(Collectors.toList()); + for (Map classMap:classList){ + if (CheckBoxEnum.CHECKED.getKey().equals(classMap.get("sfxx"))){ + continue; + } + if (CheckBoxEnum.CHECKED.getKey().equals(classMap.get("ksdk"))){ + String kssj = Utils.getkssjTime(classMap,bcrq); + Map dataMap = Maps.newHashMap(); + dataMap.put("bdkry",bdkry); + dataMap.put("bdxx",classMap.get("bcsdxx")); + dataMap.put("bdklx",bdkxm); + dataMap.put("bdkrq",kssj.split(" ")[0]); + dataMap.put("bdksj",kssj.split(" ")[1]); + resultList.add(dataMap); + } + if (CheckBoxEnum.CHECKED.getKey().equals(classMap.get("jsdk"))){ + String jssj = Utils.getjssjTime(classMap,bcrq); + Map dataMap = Maps.newHashMap(); + dataMap.put("bdkry",bdkry); + dataMap.put("bdxx",classMap.get("bcsdxx")); + dataMap.put("bdklx",bdkxm); + dataMap.put("bdkrq",jssj.split(" ")[0]); + dataMap.put("bdksj",jssj.split(" ")[1]); + resultList.add(dataMap); + } + } + + } + + } + resultList = resultList.stream().sorted(Comparator.comparing(e -> DateUtil.getTime(e.get("bdkrq").toString()).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList()); + + Map resultMap = Maps.newHashMap(); + resultMap.put("data",resultList); + return resultMap; + } +} diff --git a/src/com/engine/jucailinkq/attendance/workflow/service/MakeUpClockInService.java b/src/com/engine/jucailinkq/attendance/workflow/service/MakeUpClockInService.java index 512ae05..4eb7221 100644 --- a/src/com/engine/jucailinkq/attendance/workflow/service/MakeUpClockInService.java +++ b/src/com/engine/jucailinkq/attendance/workflow/service/MakeUpClockInService.java @@ -6,4 +6,6 @@ public interface MakeUpClockInService { Map processSubmitCheck(Map params); Map getKqCycleTimeIntervalCmd(Map params); + + Map generateMakeUpClock(Map params); } diff --git a/src/com/engine/jucailinkq/attendance/workflow/service/impl/AskForLeaveServiceImpl.java b/src/com/engine/jucailinkq/attendance/workflow/service/impl/AskForLeaveServiceImpl.java index f8b3832..a7963f7 100644 --- a/src/com/engine/jucailinkq/attendance/workflow/service/impl/AskForLeaveServiceImpl.java +++ b/src/com/engine/jucailinkq/attendance/workflow/service/impl/AskForLeaveServiceImpl.java @@ -502,10 +502,15 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic //获取前一天班次id String yesterday = DateUtil.beforeDay(leaveDate,1); String yesterdayBcId = restDateList.contains(yesterday) ? "" : Util.null2String(dateToBcxxMap.get(yesterday)).split("-")[0]; + if ("".equals(yesterdayBcId) && !"".equals(bcxx)){ + yesterdayBcId = bcxx; + } //获取次日班次id String nextDay = DateUtil.AfterDay(leaveDate,1); String nextDayBcId = restDateList.contains(nextDay) ? "" : Util.null2String(dateToBcxxMap.get(nextDay)).split("-")[0]; - + if ("".equals(nextDayBcId) && !"".equals(bcxx)){ + nextDayBcId = bcxx; + } if (halfDayRangeSelect.equals(CheckBoxEnum.CHECKED.getKey())) { //根据“上下午选择”字段来重新获取开始和结束时间点 //获取开始日期班次id diff --git a/src/com/engine/jucailinkq/attendance/workflow/service/impl/MakeUpClockInServiceImpl.java b/src/com/engine/jucailinkq/attendance/workflow/service/impl/MakeUpClockInServiceImpl.java index 1d707ec..e45a553 100644 --- a/src/com/engine/jucailinkq/attendance/workflow/service/impl/MakeUpClockInServiceImpl.java +++ b/src/com/engine/jucailinkq/attendance/workflow/service/impl/MakeUpClockInServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.jucailinkq.attendance.workflow.service.impl; +import com.engine.jucailinkq.attendance.workflow.cmd.GenerateMakeUpClockCmd; import com.engine.jucailinkq.attendance.workflow.cmd.GetKqCycleTimeIntervalCmd; import com.engine.jucailinkq.attendance.workflow.service.MakeUpClockInService; import com.engine.core.impl.Service; @@ -19,4 +20,10 @@ public class MakeUpClockInServiceImpl extends Service implements MakeUpClockInSe return commandExecutor.execute(new GetKqCycleTimeIntervalCmd(params)); } + + @Override + public Map generateMakeUpClock(Map params) { + + return commandExecutor.execute(new GenerateMakeUpClockCmd(params)); + } } diff --git a/src/com/engine/jucailinkq/attendance/workflow/web/AllowanceApi.java b/src/com/engine/jucailinkq/attendance/workflow/web/AllowanceApi.java index 67a1aba..83d310d 100644 --- a/src/com/engine/jucailinkq/attendance/workflow/web/AllowanceApi.java +++ b/src/com/engine/jucailinkq/attendance/workflow/web/AllowanceApi.java @@ -6,6 +6,7 @@ import com.engine.jucailinkq.attendance.workflow.service.impl.AllowanceServiceIm import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; import com.engine.jucailinkq.common.util.ApiReturnTools; +import com.engine.jucailinkq.common.util.ExtensionClassHolder; import com.engine.jucailinkq.common.util.ResponseResult; import com.google.gson.Gson; import lombok.extern.slf4j.Slf4j; @@ -50,6 +51,7 @@ public class AllowanceApi { Map apidatas = new HashMap(); User user = HrmUserVarify.getUser(request, response); apidatas = getAllowanceService(user).addAllowanceRecords(ParamUtil.request2Map(request)); + ExtensionClassHolder.remove(); return JSONObject.toJSONString(apidatas); } diff --git a/src/com/engine/jucailinkq/attendance/workflow/web/MakeUpClockInAction.java b/src/com/engine/jucailinkq/attendance/workflow/web/MakeUpClockInAction.java index b8dd61e..2de2785 100644 --- a/src/com/engine/jucailinkq/attendance/workflow/web/MakeUpClockInAction.java +++ b/src/com/engine/jucailinkq/attendance/workflow/web/MakeUpClockInAction.java @@ -40,4 +40,22 @@ public class MakeUpClockInAction { return ApiReturnTools.error("500","processSubmitCheck error"); } } + + /** + * 生成补打卡记录 + * @return + */ + @POST + @Path("/generateMakeUpClock") + @Produces({"text/plain"}) + public String generateMakeUpClock(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + Map paramMap = ParamUtil.request2Map(request); + Map dataMap = makeUpClockInService.generateMakeUpClock(paramMap); + return ApiReturnTools.success(dataMap); + }catch (Exception e){ + log.error("execute fail,catch error: [{}]",e); + return ApiReturnTools.error("500","processSubmitCheck error"); + } + } } diff --git a/src/com/engine/jucailinkq/common/cmd/GetPersonVocationBySuitOrganzation.java b/src/com/engine/jucailinkq/common/cmd/GetPersonVocationBySuitOrganzation.java index 138e4b0..a58b794 100644 --- a/src/com/engine/jucailinkq/common/cmd/GetPersonVocationBySuitOrganzation.java +++ b/src/com/engine/jucailinkq/common/cmd/GetPersonVocationBySuitOrganzation.java @@ -33,12 +33,10 @@ public class GetPersonVocationBySuitOrganzation extends AbstractCommonCommand execute(CommandContext commandContext) { String modeId = Util.null2String(params.get("modeId")); - //查询所有假期额度的作用范围对象 String sql = "select dxlx,aqjb,dataid,dx from uf_jcl_syzz where modeid=?"; //假期额度适用组织所有值集合 List> organzationList = DbTools.getSqlToList(sql,modeId); - //查询所有假期额度规则及明细信息 - sql = "select a.id dataid,b.id detailid,a.*,b.* from uf_jcl_kq_jqed a left join uf_jcl_kq_jqed_dt1 b on a.id=b.mainid where (gzzt is null or gzzt <> '1') ORDER BY a.JB DESC ,b.ID"; + sql = "select a.id dataid,b.id detailid,a.*,b.* from uf_jcl_kq_jqed a left join uf_jcl_kq_jqed_dt1 b on a.id=b.mainid where (gzzt is null or gzzt <> '1')"; //所有假期额度生成规则值 List> vacationList = DbTools.getSqlToList(sql); //人力资源id,(假别,规则id) @@ -53,26 +51,17 @@ public class GetPersonVocationBySuitOrganzation extends AbstractCommonCommand vacationMap = Maps.newHashMap(); - String empid = ""; - if (params.containsKey("empid")){ - empid = Util.null2String(params.get("empid")); - for (Map vocation : vacationList) { - vacationMap.put(vocation.get("dataid").toString(), vocation.get("jb").toString()); - vocation.put("zyzValue", getUserIds(vocation,empid)); - } - }else { - for (Map vocation : vacationList) { - vacationMap.put(vocation.get("dataid").toString(), vocation.get("jb").toString()); - vocation.put("zyzValue", getUserIds(vocation)); - } + for (Map vocation:vacationList){ + vacationMap.put(vocation.get("dataid").toString(),vocation.get("jb").toString()); + vocation.put("zyzValue",getUserIds(vocation)); } + Map>> vacationGroupByDataIdMap = vacationList.stream().collect(Collectors.groupingBy(e->e.get("dataid").toString())); Set personOrganzationIds = Sets.newHashSet(); Set departMentIds = Sets.newHashSet(); Set subCompanyIds = Sets.newHashSet(); - //遍历所有适用范围信息 for (Map organzation:organzationList){ String dx = Util.null2String(organzation.get("dx")).split("-")[0]; String dataid = Util.null2String(organzation.get("dataid")); @@ -117,16 +106,13 @@ public class GetPersonVocationBySuitOrganzation extends AbstractCommonCommand 0){ sql = sql+ " and departmentid in ("+String.join(",",departMentIds)+")"; } - if (subCompanyIds.size() >0 && departMentIds.size() > 0){ + if (subCompanyIds .size() >0 && departMentIds.size() > 0){ sql = "select id,departmentid,subcompanyid1,seclevel from hrmresource where status <> '5' and status <> '4' and status <> '7' "; sql = sql+ " and (departmentid in ("+String.join(",",departMentIds)+")"+ " or subcompanyid1 in ("+String.join(",",subCompanyIds)+"))"; }else if (subCompanyIds .size() >0 && departMentIds.size() == 0){ sql = sql+ " and subcompanyid1 in ("+String.join(",",subCompanyIds)+")"; } - sql += " and (belongto is null or belongto='-1') "; - if (params.containsKey("empid")){ - sql += " and id = " + empid; - } + sql += " and (belongto is null or belongto='-1' or belongto='0') "; List> hrmListByDepartAndSubCompanyIds = DbTools.getSqlToList(sql); //部门id-人员id集合 @@ -138,12 +124,7 @@ public class GetPersonVocationBySuitOrganzation extends AbstractCommonCommand0){ //人员分组id-(假别,假期规则id) - Map> personGroupUserIds = Maps.newHashMap(); - if (!empid.equals("")) { - personGroupUserIds = getPersonGroupUserIds(personOrganzationIds,empid); - }else{ - personGroupUserIds = getPersonGroupUserIds(personOrganzationIds); - } + Map> personGroupUserIds = getPersonGroupUserIds(personOrganzationIds); log.info("personGroupUserIds : [{}]",personGroupUserIds); log.info("personOrganzationMap : [{}]",personOrganzationMap); for (Map.Entry entry : personOrganzationMap.entrySet()){ @@ -170,9 +151,7 @@ public class GetPersonVocationBySuitOrganzation extends AbstractCommonCommand> getPersonGroupUserIds(Set personOrganzationIds, String pEmpId){ - String sql = "select b.mainid,b.empid,b.filters,b.sqltj,b.bdate,b.edate,a.list_type from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where mainid in ("+String.join(",",personOrganzationIds)+")"; - - List> personGroupDataList = DbTools.getSqlToList(sql); - - Map> personGroupUserIds = Maps.newHashMap(); - for (Map personGroupData :personGroupDataList){ - String id = Util.null2String(personGroupData.get("mainid")); - String empid = Util.null2String(personGroupData.get("empid")); - String filters = Util.null2String(personGroupData.get("filters")); - String list_type = Util.null2String(personGroupData.get("list_type")); - String sqltj = Util.null2String(personGroupData.get("sqltj")); - - Set userIds = personGroupUserIds.get(id); - if (userIds == null){ - userIds = Sets.newHashSet(); - personGroupUserIds.put(id,userIds); - } - - if ("0".equals(list_type) && !"".equals(empid)){ - //人员清单 - if (empid.equals(pEmpId)) - userIds.add(empid); - - }else if ("1".equals(list_type) && !"".equals(filters)){ - //条件清单 - sql = "select id,seclevel from hrmresource where status <> '5' and status <> '4' and status <> '7' "; - filters = filters.replace("and","and"); - filters = filters.replace("or","or"); - if (filters.contains("field")){ - sql = "select a.id,a.seclevel from hrmresource a left join cus_fielddata b on a.id=b.id where scope='HrmCustomFieldByInfoType' and a.status <> '5' and a.status <> '4' and a.status <> '7' and "+filters; - }else { - sql = sql+ " and "+filters; - } - sql = "select * from (" + sql + ") where id = " + pEmpId; - log.info("getPersonnelGroupingByPerson filter sql : {}",sql); - List> dataList = DbTools.getSqlToList(sql); - for (Map dataMap :dataList){ - String hrmId = Util.null2String(dataMap.get("id")); - String seclevel = Util.null2String(dataMap.get("seclevel")); - userIds.add(hrmId); - } - }else if ("2".equals(list_type) && !"".equals(sqltj)){ - sqltj = Utils.converSQL(sqltj); - sqltj = "select * from (" + sqltj + ") where id = " + pEmpId; - log.debug("getPersonnelGroupingByPerson sqltj : [{}]",sqltj); - List> dataList = DbTools.getSqlToList(sqltj); - for (Map dataMap :dataList){ - String hrmId = Util.null2String(dataMap.get("id")); - userIds.add(hrmId); - } - } - } - return personGroupUserIds; - } - /** * 获得人员分组下面的人员集合 * @param personOrganzationIds @@ -335,11 +253,11 @@ public class GetPersonVocationBySuitOrganzation extends AbstractCommonCommand> dataList = DbTools.getSqlToList(sqltj); - sql = "select id from hrmresource where belongto is null or belongto='-1'"; + sql = "select id from hrmresource where belongto is null or belongto='-1' or belongto='0'"; List> hrmListMap = DbTools.getSqlToList(sql); List hrmList = hrmListMap.stream().map(e->e.get("id").toString()).collect(Collectors.toList()); for (Map dataMap :dataList){ @@ -380,22 +298,4 @@ public class GetPersonVocationBySuitOrganzation extends AbstractCommonCommand getUserIds(Map vocation, String pEmpId){ - List userIds = Lists.newArrayList(); - String edyj = Util.null2String(vocation.get("edyj")); - if (edyj.equals("3") || edyj.equals("4")){ - String zyz = "select ID from ("+Util.null2String(vocation.get("zyz"))+") where id = " + pEmpId; - zyz = Utils.converSQL(zyz); - List> dataList = DbTools.getSqlToList(zyz); - userIds = dataList.stream().map(e->Util.null2String(e.get("id"))).collect(Collectors.toList()); - } - return userIds; - } } diff --git a/src/com/engine/jucailinkq/common/util/ApiReturnTools.java b/src/com/engine/jucailinkq/common/util/ApiReturnTools.java index 955b989..bb2265b 100644 --- a/src/com/engine/jucailinkq/common/util/ApiReturnTools.java +++ b/src/com/engine/jucailinkq/common/util/ApiReturnTools.java @@ -14,6 +14,7 @@ public class ApiReturnTools { Map returnMap = new HashMap<>(); returnMap.put("code",errorCode); returnMap.put("message",errorMessage); + ExtensionClassHolder.remove(); return gson.toJson(returnMap); } @@ -21,23 +22,26 @@ public class ApiReturnTools { Map returnMap = new HashMap<>(); returnMap.put("code","200"); returnMap.put("data",dataMap); + ExtensionClassHolder.remove(); return gson.toJson(returnMap); } public static String success(List> dataMap){ Map returnMap = new HashMap<>(); returnMap.put("code","200"); returnMap.put("data",dataMap); + ExtensionClassHolder.remove(); return gson.toJson(returnMap); } public static String errorjson(String errorCode,String errorMessage){ Map returnMap = new HashMap<>(); returnMap.put("code",errorCode); returnMap.put("message",errorMessage); + ExtensionClassHolder.remove(); return JSON.toJSONString(returnMap); } public static String DirectReturn(Map dataMap){ - + ExtensionClassHolder.remove(); return gson.toJson(dataMap); } } diff --git a/src/com/engine/jucailinkq/common/util/DateUtil.java b/src/com/engine/jucailinkq/common/util/DateUtil.java index 7acb4ff..e352529 100644 --- a/src/com/engine/jucailinkq/common/util/DateUtil.java +++ b/src/com/engine/jucailinkq/common/util/DateUtil.java @@ -473,4 +473,10 @@ public class DateUtil { calendar.setFirstDayOfWeek(Calendar.MONDAY);//设置星期一为一周开始的第一天 return calendar.get(Calendar.WEEK_OF_YEAR); } + + public static String converHourAndMinute(String date) { + String time = date.split(" ")[1]; + String str = time.split(":")[0]+":"+time.split(":")[1]; + return str; + } } diff --git a/src/com/engine/jucailinkq/common/util/ExtensionClassHolder.java b/src/com/engine/jucailinkq/common/util/ExtensionClassHolder.java index ed41bc5..151aaca 100644 --- a/src/com/engine/jucailinkq/common/util/ExtensionClassHolder.java +++ b/src/com/engine/jucailinkq/common/util/ExtensionClassHolder.java @@ -77,4 +77,14 @@ public class ExtensionClassHolder { public static void setPetDepartMentThreadLocal(Map petDepartMent) { ExtensionClassHolder.petDepartThreadLocal.set(petDepartMent); } + + public static void remove(){ + adjustClockPointActionThreadLocal.remove(); + globalSetMapThreadLocal.remove(); + personBelongGroupThreadLocal.remove(); + personInformationThreadLocal.remove(); + petDepartThreadLocal.remove(); + DbTools.thread.remove(); + DbTools.threadRecordSetTrans.remove(); + } } diff --git a/src/com/engine/jucailinkq/common/util/ResponseResult.java b/src/com/engine/jucailinkq/common/util/ResponseResult.java index ecf96b3..4e6f57b 100644 --- a/src/com/engine/jucailinkq/common/util/ResponseResult.java +++ b/src/com/engine/jucailinkq/common/util/ResponseResult.java @@ -52,7 +52,9 @@ public class ResponseResult { * 统一返回方法 */ public String run(Function f, T t) { + try { + ExtensionClassHolder.remove(); if (isLog) { log.debug("run attendance api , param {}", t); } @@ -83,6 +85,7 @@ public class ResponseResult { */ public String run(Consumer f, T t) { try { + ExtensionClassHolder.remove(); if (isLog) { log.debug("run attendance api , param {}", t); } @@ -106,6 +109,7 @@ public class ResponseResult { */ public String run(Supplier f) { try { + ExtensionClassHolder.remove(); if (isLog) { log.debug("run attendance api"); } diff --git a/src/weaver/formmode/customjavacode/customsearch/jucailinkq/AskforCustomSearchTemplate.java b/src/weaver/formmode/customjavacode/customsearch/jucailinkq/AskforCustomSearchTemplate.java new file mode 100644 index 0000000..74efd8c --- /dev/null +++ b/src/weaver/formmode/customjavacode/customsearch/jucailinkq/AskforCustomSearchTemplate.java @@ -0,0 +1,95 @@ +package weaver.formmode.customjavacode.customsearch.jucailinkq; + +import java.util.*; +import java.util.stream.Collectors; + +import com.engine.jucailinkq.common.util.DbTools; +import com.engine.jucailinkq.common.util.ExtensionClassHolder; +import com.engine.jucailinkq.common.util.Utils; +import lombok.extern.slf4j.Slf4j; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.formmode.customjavacode.AbstractCustomSqlConditionJavaCode; + +/** + * 说明 + * 修改时 + * 类名要与文件名保持一致 + * class文件存放位置与路径保持一致。 + * 请把编译后的class文件,放在对应的目录中才能生效 + * 注意 同一路径下java名不能相同。 + * @author Administrator + * + */ + +@Slf4j +public class AskforCustomSearchTemplate extends AbstractCustomSqlConditionJavaCode { + + /** + * 生成SQL查询限制条件 + * @param param + * param包含(但不限于)以下数据 + * user 当前用户 + * + * @return + * 返回的查询限制条件的格式举例为: t1.a = '1' and t1.b = '3' and t1.c like '%22%' + * 其中t1为表单主表表名的别名 + */ + public String generateSqlCondition(Map param) throws Exception { + log.info("generateSqlCondition : [{}]",param); + User user = (User)param.get("user"); + int userId = user.getUID(); + String sql = "select b.*,a.list_type from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where a.userfor=5 and a.fzgly=?"; + List> dataList = DbTools.getSqlToList(sql,userId); + String sqlCondition = ""; + + if (dataList.size() > 0){ + String listType = Util.null2String(dataList.get(0).get("list_type")); + if (listType.equals("0")){ + //人员清单 + List userList = dataList.stream().map(e->Util.null2String(e.get("empid"))).collect(Collectors.toList()); + sqlCondition = "d1.qjry in ("+String.join(",",userList)+")"; + }else if (listType.equals("1")){ + //条件清单 + sql = "select id from hrmresource where ("; + for (int i=0;i map = dataList.get(i); + String filters = Util.null2String(map.get("filters")); + filters = Utils.converSQL(filters); + + if (i == dataList.size()-1){ + sql = sql+filters+")"; + }else { + sql = sql+filters+" or "; + } + + } + + sqlCondition = "d1.qjry in ("+sql+") "; + }else if (listType.equals("2")){ + //sql条件 + String sqltj = ""; + for (int i=0;i param) throws Exception { + log.info("generateSqlCondition : [{}]",param); + User user = (User)param.get("user"); + int userId = user.getUID(); + String sql = "select b.*,a.list_type from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where a.userfor=5 and a.fzgly=?"; + List> dataList = DbTools.getSqlToList(sql,userId); + String sqlCondition = ""; + if (dataList.size() > 0){ + String listType = Util.null2String(dataList.get(0).get("list_type")); + if (listType.equals("0")){ + //人员清单 + List userList = dataList.stream().map(e->Util.null2String(e.get("empid"))).collect(Collectors.toList()); + sqlCondition = "t1.ygid in ("+String.join(",",userList)+")"; + }else if (listType.equals("1")){ + //条件清单 + sql = "select id from hrmresource where ("; + for (int i=0;i map = dataList.get(i); + String filters = Util.null2String(map.get("filters")); + filters = Utils.converSQL(filters); + + if (i == dataList.size()-1){ + sql = sql+filters+")"; + }else { + sql = sql+filters+" or "; + } + + } + + sqlCondition = "t1.ygid in ("+sql+") "; + }else if (listType.equals("2")){ + //sql条件 + String sqltj = ""; + for (int i=0;i param) throws Exception { + log.info("generateSqlCondition : [{}]",param); + User user = (User)param.get("user"); + int userId = user.getUID(); + String sql = "select b.*,a.list_type from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where a.userfor=5 and a.fzgly=?"; + List> dataList = DbTools.getSqlToList(sql,userId); + String sqlCondition = ""; + if (dataList.size() > 0){ + String listType = Util.null2String(dataList.get(0).get("list_type")); + if (listType.equals("0")){ + //人员清单 + List userList = dataList.stream().map(e->Util.null2String(e.get("empid"))).collect(Collectors.toList()); + sqlCondition = "t1.bdkry in ("+String.join(",",userList)+")"; + }else if (listType.equals("1")){ + //条件清单 + sql = "select id from hrmresource where ("; + for (int i=0;i map = dataList.get(i); + String filters = Util.null2String(map.get("filters")); + filters = Utils.converSQL(filters); + + if (i == dataList.size()-1){ + sql = sql+filters+")"; + }else { + sql = sql+filters+" or "; + } + + } + + sqlCondition = "t1.bdkry in ("+sql+") "; + }else if (listType.equals("2")){ + //sql条件 + String sqltj = ""; + for (int i=0;i param) throws Exception { + log.info("generateSqlCondition : [{}]",param); + User user = (User)param.get("user"); + int userId = user.getUID(); + String sql = "select b.*,a.list_type from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where a.userfor=5 and a.fzgly=?"; + List> dataList = DbTools.getSqlToList(sql,userId); + String sqlCondition = ""; + if (dataList.size() > 0){ + String listType = Util.null2String(dataList.get(0).get("list_type")); + if (listType.equals("0")){ + //人员清单 + List userList = dataList.stream().map(e->Util.null2String(e.get("empid"))).collect(Collectors.toList()); + sqlCondition = "d1.ccr in ("+String.join(",",userList)+")"; + }else if (listType.equals("1")){ + //条件清单 + sql = "select id from hrmresource where ("; + for (int i=0;i map = dataList.get(i); + String filters = Util.null2String(map.get("filters")); + filters = Utils.converSQL(filters); + + if (i == dataList.size()-1){ + sql = sql+filters+")"; + }else { + sql = sql+filters+" or "; + } + + } + + sqlCondition = "d1.ccr in ("+sql+") "; + }else if (listType.equals("2")){ + //sql条件 + String sqltj = ""; + for (int i=0;i param) throws Exception { + log.info("generateSqlCondition : [{}]",param); + User user = (User)param.get("user"); + int userId = user.getUID(); + String sql = "select b.*,a.list_type from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where a.userfor=5 and a.fzgly=?"; + List> dataList = DbTools.getSqlToList(sql,userId); + String sqlCondition = ""; + if (dataList.size() > 0){ + String listType = Util.null2String(dataList.get(0).get("list_type")); + if (listType.equals("0")){ + //人员清单 + List userList = dataList.stream().map(e->Util.null2String(e.get("empid"))).collect(Collectors.toList()); + sqlCondition = "t1.ygid in ("+String.join(",",userList)+")"; + }else if (listType.equals("1")){ + //条件清单 + sql = "select id from hrmresource where ("; + for (int i=0;i map = dataList.get(i); + String filters = Util.null2String(map.get("filters")); + filters = Utils.converSQL(filters); + + if (i == dataList.size()-1){ + sql = sql+filters+")"; + }else { + sql = sql+filters+" or "; + } + + } + + sqlCondition = "t1.ygid in ("+sql+") "; + }else if (listType.equals("2")){ + //sql条件 + String sqltj = ""; + for (int i=0;i param) throws Exception { + log.info("generateSqlCondition : [{}]",param); + User user = (User)param.get("user"); + int userId = user.getUID(); + String sql = "select b.*,a.list_type from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where a.userfor=5 and a.fzgly=?"; + List> dataList = DbTools.getSqlToList(sql,userId); + String sqlCondition = ""; + if (dataList.size() > 0){ + String listType = Util.null2String(dataList.get(0).get("list_type")); + if (listType.equals("0")){ + //人员清单 + List userList = dataList.stream().map(e->Util.null2String(e.get("empid"))).collect(Collectors.toList()); + sqlCondition = "d1.jbry in ("+String.join(",",userList)+")"; + }else if (listType.equals("1")){ + //条件清单 + sql = "select id from hrmresource where ("; + for (int i=0;i map = dataList.get(i); + String filters = Util.null2String(map.get("filters")); + filters = Utils.converSQL(filters); + + if (i == dataList.size()-1){ + sql = sql+filters+")"; + }else { + sql = sql+filters+" or "; + } + + } + + sqlCondition = "d1.jbry in ("+sql+") "; + }else if (listType.equals("2")){ + //sql条件 + String sqltj = ""; + for (int i=0;i param) throws Exception { + log.info("generateSqlCondition : [{}]",param); + User user = (User)param.get("user"); + int userId = user.getUID(); + String sql = "select b.*,a.list_type from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where a.userfor=5 and a.fzgly=?"; + List> dataList = DbTools.getSqlToList(sql,userId); + String sqlCondition = ""; + if (dataList.size() > 0){ + String listType = Util.null2String(dataList.get(0).get("list_type")); + if (listType.equals("0")){ + //人员清单 + List userList = dataList.stream().map(e->Util.null2String(e.get("empid"))).collect(Collectors.toList()); + sqlCondition = "t1.jbry in ("+String.join(",",userList)+")"; + }else if (listType.equals("1")){ + //条件清单 + sql = "select id from hrmresource where ("; + for (int i=0;i map = dataList.get(i); + String filters = Util.null2String(map.get("filters")); + filters = Utils.converSQL(filters); + + if (i == dataList.size()-1){ + sql = sql+filters+")"; + }else { + sql = sql+filters+" or "; + } + + } + + sqlCondition = "t1.jbry in ("+sql+") "; + }else if (listType.equals("2")){ + //sql条件 + String sqltj = ""; + for (int i=0;i