diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/RecordDataCmd.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/RecordDataCmd.java index 98fd885..d834436 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/RecordDataCmd.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/RecordDataCmd.java @@ -4,11 +4,9 @@ import com.engine.jucailinkq.attendance.enums.CheckBoxEnum; import com.engine.common.biz.AbstractCommonCommand; import com.engine.common.entity.BizLogContext; import com.engine.jucailinkq.attendance.vacation.util.VocationCommonUtil; -import com.engine.jucailinkq.common.util.CommonUtil; -import com.engine.jucailinkq.common.util.DateUtil; -import com.engine.jucailinkq.common.util.DbTools; +import com.engine.jucailinkq.common.exception.AttendanceRunTimeException; +import com.engine.jucailinkq.common.util.*; import com.engine.core.interceptor.CommandContext; -import com.engine.jucailinkq.common.util.Utils; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; @@ -70,6 +68,11 @@ public class RecordDataCmd extends AbstractCommonCommand> { if ("".equals(sfxx)){ sfxx= CheckBoxEnum.UNCHECKED.getKey(); } + Map gobalSet = ExtensionClassHolder.getGlobalSetMap(); + String haveRecord = Util.null2String(gobalSet.get("haveRecord")); + if (!"1".equals(haveRecord)){ + return null; + } String sql = "select ygid,rq from uf_jcl_kq_cqjg where ygid=? and rq=?"; List> dataList = DbTools.getSqlToList(sql,userId,analysisDate); @@ -196,24 +199,29 @@ public class RecordDataCmd extends AbstractCommonCommand> { //处理加班结果 try { - if (overTimeResultList.size() > 0){ - sql = "select id,jblx,lyid from uf_jcl_kq_jbjg where lyid=? and jbjgly=4"; - List> oldOverTimeList = DbTools.getSqlToList(sql,id); - for (Map overTimeResult : overTimeResultList){ - overTimeResult.put("lyid",id); - } + + sql = "select id,jblx,lyid from uf_jcl_kq_jbjg where lyid=? and jbjgly=4"; + List> oldOverTimeList = DbTools.getSqlToList(sql,id); + for (Map overTimeResult : overTimeResultList){ + overTimeResult.put("lyid",id); + } + if (oldOverTimeList.size() >0 || overTimeResultList.size() >0 ){ updateOverTimeResult(oldOverTimeList,overTimeResultList); } + //处理假期余额 - if (overTimeHolidayList.size() > 0){ - sql = "select id,jqid,ktsc,yxsc,wxsc,ztsc,zfsc,jxsc,dzkxsc,lyid,lyjblx from uf_jcl_kq_jqye where lyid=? and lylx=4"; - List> oldOverTimeHolidayList = DbTools.getSqlToList(sql,id); - for (Map overTimeHoliday : overTimeHolidayList){ - overTimeHoliday.put("lyid",id); - } + + sql = "select id,jqid,ktsc,yxsc,wxsc,ztsc,zfsc,jxsc,dzkxsc,lyid,lyjblx,sm from uf_jcl_kq_jqye where lyid=? and lylx=4"; + List> oldOverTimeHolidayList = DbTools.getSqlToList(sql,id); + oldOverTimeHolidayList = oldOverTimeHolidayList.stream().filter(e->(Double.valueOf(e.get("zfsc").toString()) < Double.valueOf(e.get("ktsc").toString())) && !"delete".equals(e.get("sm"))).collect(Collectors.toList()); + for (Map overTimeHoliday : overTimeHolidayList){ + overTimeHoliday.put("lyid",id); + } + if (oldOverTimeHolidayList.size() > 0 || overTimeHolidayList.size() > 0){ updateOverTimeHoliday(oldOverTimeHolidayList,overTimeHolidayList); } + }catch (Exception e){ log.error("updateWorkOverTimeDate error : [{}]",e); } @@ -386,7 +394,8 @@ public class RecordDataCmd extends AbstractCommonCommand> { if (deleteList.size() > 0){ - String deleteSql = "delete from uf_jcl_kq_jqye where id in ("+String.join(",",deleteList)+")"; + //String deleteSql = "delete from uf_jcl_kq_jqye where id in ("+String.join(",",deleteList)+")"; + String deleteSql = "update uf_jcl_kq_jqye set yxsc=0,wxsc=0,ztsc=0,jxsc=0,zfsc=ktsc,sm='delete' where id in ("+String.join(",",deleteList)+")"; DbTools.update(deleteSql); } if (updateList.size() > 0){ @@ -427,4 +436,6 @@ public class RecordDataCmd extends AbstractCommonCommand> { } + + } diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/job/AttendanceAnalysisJob.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/job/AttendanceAnalysisJob.java index 80ed0f5..0fdae77 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/job/AttendanceAnalysisJob.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/job/AttendanceAnalysisJob.java @@ -184,6 +184,7 @@ public class AttendanceAnalysisJob extends BaseCronJob { log.info("********AttendanceAnalysisJob prepare end******"); + CommonUtil.checkHavePermission(); for (Map userMap:userList){ Map analysisParam = Maps.newHashMap(); diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceanalysisAction.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceanalysisAction.java index 798ffbf..39fe142 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceanalysisAction.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/web/AttendanceanalysisAction.java @@ -49,8 +49,8 @@ public class AttendanceanalysisAction { log.info("********AttendanceanalysisAction start********"); Map paramMap = ParamUtil.request2Map(request); // Map paramMap = Maps.newHashMap(); -// paramMap.put("startDate","2024-12-02"); -// paramMap.put("endDate","2024-12-02"); +// paramMap.put("startDate","2024-12-05"); +// paramMap.put("endDate","2024-12-05"); // paramMap.put("userIds","25"); String startDate = Util.null2String(paramMap.get("startDate")); @@ -88,8 +88,7 @@ public class AttendanceanalysisAction { List> resultList = DbTools.getSqlToList(queysql); //所有综合工时 Map>> workingHourGroupBy = resultList.stream().collect(Collectors.groupingBy(e->e.get("id").toString())); - - + CommonUtil.checkHavePermission(); if ("".equals(userIds)){ log.info("********AttendanceanalysisAction prepare start******"); String queryDepartEmployeeSql = "select resourceid ,changedate,type_n from HRMSTATUSHISTORY where (type_n = 5 or type_n = 7) and changedate <> '' and changedate is not null"; @@ -326,10 +325,10 @@ public class AttendanceanalysisAction { allowanceService.addAllowanceRecords(paramMap); } log.info("********AttendanceanalysisAction end********"); - return null; + return ApiReturnTools.success(Maps.newHashMap()); }catch (Exception e){ log.error("execute fail,catch error: [{}]",e); - return ApiReturnTools.error("500",e.getMessage()); + return ApiReturnTools.errorjson("500",e.getCause().getMessage()); } } diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java index 06f2b8b..aa573af 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java @@ -7,6 +7,7 @@ import com.engine.jucailinkq.attendance.attendanceanalysis.service.impl.Comprehe import com.engine.jucailinkq.attendance.attendanceanalysis.service.impl.UtilServiceImpl; import com.engine.jucailinkq.attendance.enums.CheckBoxEnum; import com.engine.jucailinkq.attendance.enums.ClassSegmentTypeEnum; +import com.engine.jucailinkq.attendance.enums.ClockPointEnum; import com.engine.jucailinkq.common.util.CommonUtil; import com.engine.jucailinkq.common.util.DateUtil; import com.engine.common.util.ServiceUtil; @@ -339,6 +340,7 @@ public class AttendanceAnalysisWrapper extends Service { */ public Map analysis(String userId, String analysisDate, List> clockInTimeList, List> scheduleResult, List> attendanceItems, List> workHourItems ,Map clockInTimeDataMap,List> evectionList,List> askforList) { + scheduleResult = scheduleResult.stream().sorted(Comparator.comparing(e -> DateUtil.getTime(Utils.getkssjTime(e, analysisDate)).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList()); Map recordParam = Maps.newHashMap(); Map formModeIdMap = Utils.getFormmodeIdMap(); recordParam.put("userId", userId); @@ -538,6 +540,19 @@ public class AttendanceAnalysisWrapper extends Service { if (workOverTimeItemList.size() > 0){ recordData.addAll(workOverTimeItemList); } + List oneClockPointDto = clcokInTimeData.stream().filter(e->e.isRecord() && !ClockPointEnum.EMPTY.equals(e.getTimeType()) && e.getClockTime() != null).collect(Collectors.toList()); + if (oneClockPointDto.size() ==1 && + (DateUtil.getTime(oneClockPointDto.get(0).getClassTime()).compareTo(DateUtil.getTime(DateUtil.AfterDay(analysisDate,1)+" 00:00:00")) > 0 || + DateUtil.getTime(oneClockPointDto.get(0).getClassTime()).compareTo(DateUtil.getTime(analysisDate +" 00:00:00")) < 0)){ + //当一天只有一笔打卡记录时取消该笔打卡记录移交给其他班段 + for (ClockPointDTO clockPointDTO:clcokInTimeData){ + if (clockPointDTO.isRecord()){ + clockPointDTO.setTimeType(ClockPointEnum.EMPTY); + clockPointDTO.setClockTime(null); + } + } + } + recordParam.put("recordData", recordData); recordParam.put("recordDataTime", utilService.getNeedRecordClockInTime(clcokInTimeData)); recordParam.put("attendanceDuration", attendanceDuration); diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java index a49da8c..665d9a3 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java @@ -415,6 +415,8 @@ public class UpdateAttendanceResultWrapper extends Service { Map map = Maps.newHashMap(); List> resultList = Lists.newArrayList(); + log.info("recordEvection evectionList :[{}]",evectionList); + log.info("recordEvection evectionItems :[{}]",evectionItems); for (int i=0;i resultMap = Maps.newHashMap(); String kssj = evectionList.get(i).get("ksrq") + " "+evectionList.get(i).get("kssj"); diff --git a/src/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.java b/src/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.java index 8eccb86..35f7a5d 100644 --- a/src/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.java +++ b/src/com/engine/jucailinkq/attendance/vacation/util/VocationCommonUtil.java @@ -656,6 +656,6 @@ public class VocationCommonUtil { endtDate=jzrqzd; } int days = DateUtil.getBetWeenDays(startDate,endtDate)+1; - insertHoliDayParam.put("ktsc",computeRestDays(days,alldays,ktsc)); + insertHoliDayParam.put("ktsc",computeRestDays(days,alldays,ktsc,wscl)); } } diff --git a/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/AskForLeaveWorkflowDataReset.java b/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/AskForLeaveWorkflowDataReset.java index 261c132..dc4c962 100644 --- a/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/AskForLeaveWorkflowDataReset.java +++ b/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/AskForLeaveWorkflowDataReset.java @@ -3,6 +3,7 @@ package com.engine.jucailinkq.attendance.workflow.proxy.tactics; import com.alibaba.fastjson.JSONObject; import com.engine.jucailinkq.attendance.workflow.enums.WorkFlowTypeEnum; import com.engine.jucailinkq.common.util.CommonUtil; +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; @@ -11,6 +12,8 @@ import lombok.extern.slf4j.Slf4j; import weaver.general.Util; import weaver.interfaces.workflow.action.Action; +import java.time.ZoneOffset; +import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -71,8 +74,9 @@ public class AskForLeaveWorkflowDataReset implements WorkFlowHandleTacis{ return; } - String sql = "select id, jlzt from uf_jcl_kq_qjjl where djid = " + requestId; - Map qjllData = DbTools.getSqlToMap(sql); + String sql = "select a.id, jlzt,b.qjry,b.ksrq,b.jsrq from uf_jcl_kq_qjjl a left join uf_jcl_kq_qjjl_dt1 b on a.id=b.mainid where a.djid = " + requestId; + List> qjllDataList = DbTools.getSqlToList(sql); + Map qjllData = qjllDataList.get(0); String jlzt = Util.null2String(qjllData.get("jlzt")); @@ -140,6 +144,17 @@ public class AskForLeaveWorkflowDataReset implements WorkFlowHandleTacis{ } } } + if (qjllDataList.size() > 0){ + Map>> detailGroupMap = qjllDataList.stream().collect(Collectors.groupingBy(e->e.get("qjry").toString())); + for (Map.Entry>> entry: detailGroupMap.entrySet()){ + String ygid = entry.getKey(); + List> detailList = entry.getValue(); + detailList = detailList.stream().sorted(Comparator.comparing(e -> DateUtil.getTime(e.get("ksrq").toString()).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList()); + String updateSql = "update uf_jcl_kq_cqjg set sjzt=0 where ygid=? and rq>=? and rq<=?"; + log.info("AskForLeaveWorkflowDataReset detailList:[{}]",detailList); + DbTools.update(updateSql,ygid,detailList.get(0).get("ksrq"),detailList.get(detailList.size()-1).get("jsrq")); + } + } //将明细表1数据清空 String delSql = "delete from " + detail1TableName + " where mainid=?"; if (!DbTools.update(delSql, mainMap.get("id"))) { diff --git a/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/BatchAskForLeaveWorkflowDataReset.java b/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/BatchAskForLeaveWorkflowDataReset.java index a5033db..392b4ac 100644 --- a/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/BatchAskForLeaveWorkflowDataReset.java +++ b/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/BatchAskForLeaveWorkflowDataReset.java @@ -2,6 +2,7 @@ package com.engine.jucailinkq.attendance.workflow.proxy.tactics; import com.alibaba.fastjson.JSONObject; import com.engine.jucailinkq.attendance.workflow.enums.WorkFlowTypeEnum; +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; @@ -9,6 +10,8 @@ import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import weaver.general.Util; +import java.time.ZoneOffset; +import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -67,8 +70,9 @@ public class BatchAskForLeaveWorkflowDataReset implements WorkFlowHandleTacis{ return; } - String sql = "select id, jlzt from uf_jcl_kq_qjjl where djid = " + requestId; - Map qjllData = DbTools.getSqlToMap(sql); + String sql = "select a.id, jlzt,b.qjry,b.ksrq,b.jsrq from uf_jcl_kq_qjjl a left join uf_jcl_kq_qjjl_dt1 b on a.id=b.mainid where a.djid = " + requestId; + List> qjllDataList = DbTools.getSqlToList(sql); + Map qjllData = qjllDataList.get(0); String jlzt = Util.null2String(qjllData.get("jlzt")); @@ -136,6 +140,18 @@ public class BatchAskForLeaveWorkflowDataReset implements WorkFlowHandleTacis{ } } } + if (qjllDataList.size() > 0){ + Map>> detailGroupMap = qjllDataList.stream().collect(Collectors.groupingBy(e->e.get("qjry").toString())); + for (Map.Entry>> entry: detailGroupMap.entrySet()){ + String ygid = entry.getKey(); + List> detailList = entry.getValue(); + detailList = detailList.stream().sorted(Comparator.comparing(e -> DateUtil.getTime(e.get("ksrq").toString()).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList()); + String updateSql = "update uf_jcl_kq_cqjg set sjzt=0 where ygid=? and rq>=? and rq<=?"; + log.info("MakeUpClockInDataReset detailList:[{}]",detailList); + DbTools.update(updateSql,ygid,detailList.get(0).get("ksrq"),detailList.get(detailList.size()-1).get("jsrq")); + } + } + //将明细表1数据清空 String delSql = "delete from " + tableName + "_dt1 where mainid=?"; if (!DbTools.update(delSql, mainMap.get("id"))) { diff --git a/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/EvectionDataReset.java b/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/EvectionDataReset.java index 2192dea..fce2889 100644 --- a/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/EvectionDataReset.java +++ b/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/EvectionDataReset.java @@ -2,11 +2,14 @@ package com.engine.jucailinkq.attendance.workflow.proxy.tactics; import com.alibaba.fastjson.JSONObject; import com.engine.jucailinkq.attendance.workflow.enums.WorkFlowTypeEnum; +import com.engine.jucailinkq.common.util.DateUtil; import com.engine.jucailinkq.common.util.DbTools; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; +import java.time.ZoneOffset; +import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -77,6 +80,16 @@ public class EvectionDataReset implements WorkFlowHandleTacis{ if (!delSign1 || !delSign2) { log.error(message); } + if (detailTableData.size() > 0){ + Map>> detailGroupMap = detailTableData.stream().collect(Collectors.groupingBy(e->e.get("ccr").toString())); + for (Map.Entry>> entry: detailGroupMap.entrySet()){ + String ygid = entry.getKey(); + List> detailList = entry.getValue(); + detailList = detailList.stream().sorted(Comparator.comparing(e -> DateUtil.getTime(e.get("ksrq").toString()).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList()); + String updateSql = "update uf_jcl_kq_cqjg set sjzt=0 where ygid=? and rq>=? and rq<=?"; + DbTools.update(updateSql,ygid,detailList.get(0).get("ksrq"),detailList.get(detailList.size()-1).get("jsrq")); + } + } } }catch (Exception e){ log.error("EvectionDataReset error : [{}]", e.getMessage()); diff --git a/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/MakeUpClockInDataReset.java b/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/MakeUpClockInDataReset.java index 57fc415..9337a1d 100644 --- a/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/MakeUpClockInDataReset.java +++ b/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/MakeUpClockInDataReset.java @@ -2,12 +2,15 @@ package com.engine.jucailinkq.attendance.workflow.proxy.tactics; import com.alibaba.fastjson.JSONObject; import com.engine.jucailinkq.attendance.workflow.enums.WorkFlowTypeEnum; +import com.engine.jucailinkq.common.util.DateUtil; import com.engine.jucailinkq.common.util.DbTools; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import weaver.interfaces.workflow.action.Action; +import java.time.ZoneOffset; +import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -58,7 +61,7 @@ public class MakeUpClockInDataReset implements WorkFlowHandleTacis{ } try { //收集补打卡记录中流程id关联的数据 - String sql = "select id from uf_jcl_kq_bdkjl where sjly = 0 and lcid = " + requestId; + String sql = "select id,bdkry,dkrq from uf_jcl_kq_bdkjl where sjly = 0 and lcid = " + requestId; List> bdkData = DbTools.getSqlToList(sql); if (bdkData.size() > 0) { List bdkjlIdList = bdkData.stream().map(f->f.get("id").toString()).collect(Collectors.toList()); @@ -70,6 +73,18 @@ public class MakeUpClockInDataReset implements WorkFlowHandleTacis{ message = message + "删除补打卡记录表数据失败!"; log.error(message); } + + + Map>> detailGroupMap = bdkData.stream().collect(Collectors.groupingBy(e->e.get("bdkry").toString())); + for (Map.Entry>> entry: detailGroupMap.entrySet()){ + String ygid = entry.getKey(); + List> detailList = entry.getValue(); + detailList = detailList.stream().sorted(Comparator.comparing(e -> DateUtil.getTime(e.get("dkrq").toString()).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList()); + String updateSql = "update uf_jcl_kq_cqjg set sjzt=0 where ygid=? and rq>=? and rq<=?"; + log.info("MakeUpClockInDataReset detailList:[{}]",detailList); + DbTools.update(updateSql,ygid,detailList.get(0).get("dkrq"),detailList.get(detailList.size()-1).get("dkrq")); + } + } }catch (Exception e){ log.error("MakeUpClockInDataReset error : [{}]", e.getMessage()); diff --git a/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/OvertimePlanDataReset.java b/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/OvertimePlanDataReset.java index 3ee332e..6bdd7c5 100644 --- a/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/OvertimePlanDataReset.java +++ b/src/com/engine/jucailinkq/attendance/workflow/proxy/tactics/OvertimePlanDataReset.java @@ -12,6 +12,7 @@ import weaver.interfaces.workflow.action.Action; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; /** @@ -65,6 +66,7 @@ public class OvertimePlanDataReset implements WorkFlowHandleTacis{ List jbjhIdList = jbjhData.stream().map(f->f.get("id").toString()).collect(Collectors.toList()); if (jbjhIdList.size() > 0) { //删除加班计划明细表 + sql = "delete from uf_jcl_kq_jbjh_dt1 where mainid in (" + String.join(",",jbjhIdList) + ")"; boolean delSign1 = DbTools.update(sql); String message = ""; @@ -77,7 +79,20 @@ public class OvertimePlanDataReset implements WorkFlowHandleTacis{ if (!delSign2) { message = message + "删除加班计划主表数据失败!"; } + //删除加班结果中加班计划转换的数据 + sql = "select lyid from uf_jcl_kq_jbjg where jbjhid in (" + String.join(",",jbjhIdList) + ")"; + log.info("OvertimePlanDataReset sql :[{}]",sql); + List> dataList = DbTools.getSqlToList(sql); + log.info("OvertimePlanDataReset dataList :[{}]",dataList); + Set attendanceIds = dataList.stream().map(e->e.get("lyid").toString()).collect(Collectors.toSet()); + sql = "update uf_jcl_kq_cqjg set sjzt=0 where id in ("+String.join(",",attendanceIds)+")"; + boolean uptSign3 = DbTools.update(sql); + if (!uptSign3) { + log.info("OvertimePlanDataReset attendanceIds :[{}]",attendanceIds); + message = message + "删除加班结果表数据失败!"; + } + sql = "delete from uf_jcl_kq_jbjg where jbjhid in (" + String.join(",",jbjhIdList) + ")"; boolean delSign3 = DbTools.update(sql); if (!delSign3) { diff --git a/src/com/engine/jucailinkq/common/util/ApiReturnTools.java b/src/com/engine/jucailinkq/common/util/ApiReturnTools.java index 7f45023..c78faaf 100644 --- a/src/com/engine/jucailinkq/common/util/ApiReturnTools.java +++ b/src/com/engine/jucailinkq/common/util/ApiReturnTools.java @@ -1,5 +1,6 @@ package com.engine.jucailinkq.common.util; +import com.alibaba.fastjson.JSON; import com.google.gson.Gson; import java.util.HashMap; @@ -28,4 +29,10 @@ public class ApiReturnTools { returnMap.put("data",dataMap); return gson.toJson(returnMap); } + public static String errorjson(String errorCode,String errorMessage){ + Map returnMap = new HashMap<>(); + returnMap.put("code",errorCode); + returnMap.put("message",errorMessage); + return JSON.toJSONString(returnMap); + } } diff --git a/src/com/engine/jucailinkq/common/util/CommonUtil.java b/src/com/engine/jucailinkq/common/util/CommonUtil.java index 4e82460..408b85f 100644 --- a/src/com/engine/jucailinkq/common/util/CommonUtil.java +++ b/src/com/engine/jucailinkq/common/util/CommonUtil.java @@ -1340,4 +1340,11 @@ public class CommonUtil { } return minute; } + public static void checkHavePermission(){ + Map gobalSet = ExtensionClassHolder.getGlobalSetMap(); + String permission = Util.null2String(gobalSet.get("permission")); + if (!permission.equals("1")){ + throw new AttendanceRunTimeException("请联系管理员获得密钥"); + } + } }