From 12de1f9cbdd0118e20feef412fa3337bcc35a85e Mon Sep 17 00:00:00 2001 From: liuliang <401809302@qq.com> Date: Fri, 26 Jul 2024 11:02:45 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=B7=E5=81=87=E8=B7=A8=E5=A4=9A=E5=A4=A9?= =?UTF-8?q?=E5=8A=A0=E7=8F=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cmd/GetAskForLeaveCmd.java | 19 ++--- .../cmd/GetEvectionCmd.java | 16 ++--- .../cmd/GetScheduleResultListCmd.java | 2 +- .../getclockInpoint/GetClockInPointCmd.java | 6 ++ .../service/impl/ShiftServiceImpl.java | 71 +++++++++---------- .../web/AttendanceanalysisAction.java | 20 +++--- .../wrapper/AttendanceAnalysisWrapper.java | 10 +-- .../UpdateAttendanceResultWrapper.java | 12 ++-- .../service/impl/WorkRulesServiceImpl.java | 6 ++ .../engine/jucailinkq/common/util/Utils.java | 10 +++ 10 files changed, 85 insertions(+), 87 deletions(-) diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetAskForLeaveCmd.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetAskForLeaveCmd.java index 70e0552..bff5bd3 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetAskForLeaveCmd.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetAskForLeaveCmd.java @@ -43,9 +43,8 @@ public class GetAskForLeaveCmd extends AbstractCommonCommand> String userId = Util.null2String(params.get("userId")); String analysisDate = Util.null2String(params.get("analysisDate")); List> scheduleResult = (List>)params.get("scheduleResult"); - String sql = "select b.qjry,b.jqlx,b.ksrq,b.kssj,b.jsrq,b.jssj,b.qjsc,b.qtj,b.btj from uf_jcl_kq_qjjl a left join uf_jcl_kq_qjjl_dt1 b on a.id = b.mainid where b.qjry=? and b.ksrq>=? and b.ksrq<=? and (b.cxqj=0 or b.cxqj is null) and a.jlzt=1"; -// String sql = "select b.qjry,b.jqlx,b.ksrq,b.kssj,b.jsrq,b.jssj,b.qjsc,b.qtj,b.btj from uf_jcl_kq_qjjl_dt1 b where b.qjry=? and b.ksrq>=? and b.ksrq<=? and (b.cxqj=0 or b.cxqj is null)"; - List> askForLeaveList = DbTools.getSqlToList(sql,userId, DateUtil.beforeDay(analysisDate,1),DateUtil.AfterDay(analysisDate,1)); + String sql = "select b.qjry,b.jqlx,b.ksrq,b.kssj,b.jsrq,b.jssj,b.qjsc,b.qtj,b.btj from uf_jcl_kq_qjjl a left join uf_jcl_kq_qjjl_dt1 b on a.id = b.mainid where b.qjry=? and b.ksrq<=? and b.jsrq>=? and (b.cxqj=0 or b.cxqj is null) and a.jlzt=1"; + List> askForLeaveList = DbTools.getSqlToList(sql,userId,DateUtil.AfterDay(analysisDate,1), DateUtil.beforeDay(analysisDate,1)); Map> askForLeaveItems = Maps.newHashMap(); @@ -171,8 +170,8 @@ public class GetAskForLeaveCmd extends AbstractCommonCommand> put("bcsdxx", scheduleResult.get(0).get("bcsdxx")); put("edsc", scheduleResult.get(0).get("edsc")); put("bdlx", ClassSegmentTypeEnum.ASK_FOR_LEAVE.getKey()); - put("dtkssj",askForLeaveData.get("kssj")); - put("dtjssj",askForLeaveData.get("jssj")); + put("dtkssj",askForLeaveData.get("ksrq")+" "+askForLeaveData.get("kssj")); + put("dtjssj",askForLeaveData.get("jsrq")+" "+askForLeaveData.get("jssj")); put("ksdk",askForLeaveItem.get("lgsbxydk")); put("jsdk",askForLeaveItem.get("fgsbxydk")); put("tqdkfzs","60"); @@ -180,19 +179,9 @@ public class GetAskForLeaveCmd extends AbstractCommonCommand> put("tqlghlfzs",askForLeaveItem.get("tqlghlfzs")); put("thfghlfzs",askForLeaveItem.get("thfghlfzs")); }}; - String ksrq = Util.null2String(askForLeaveData.get("ksrq")); - if (DateUtil.getTime(ksrq).compareTo(DateUtil.getTime(analysisDate)) == 0){ - askForLeaveMap.put("gsrq",ClassBelongToEnum.NOWDAY.getKey()); - }else if (DateUtil.getTime(ksrq).compareTo(DateUtil.getTime(analysisDate)) < 0){ - askForLeaveMap.put("gsrq",ClassBelongToEnum.YESTERDAY.getKey()); - }else if (DateUtil.getTime(ksrq).compareTo(DateUtil.getTime(analysisDate)) > 0){ - askForLeaveMap.put("gsrq",ClassBelongToEnum.NEXTDAY.getKey()); - } askForLeaveSchedule.add(askForLeaveMap); } } - - return resultMap; } } diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetEvectionCmd.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetEvectionCmd.java index d82d6ee..2ab0341 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetEvectionCmd.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetEvectionCmd.java @@ -44,8 +44,8 @@ public class GetEvectionCmd extends AbstractCommonCommand> { String analysisDate = Util.null2String(params.get("analysisDate")); List> scheduleResult = (List>)params.get("scheduleResult"); //String sql = "select b.ccr,a.cclx,a.ccsd,b.ksrq,b.jsrq,b.kssj,b.jssj,b.ccsc,b.qtcc,b.btcc,b.cxcc from uf_jcl_kq_ccjl a left join uf_jcl_kq_ccjl_dt1 b on a.id = b.mainid where b.ccr=? and b.ksrq>=? and b.ksrq<=? and (b.cxcc=0 or b.cxcc is null)"; - String sql = "select b.ccr,b.cclx,b.ksrq,b.jsrq,b.kssj,b.jssj,b.ccsc,b.qtcc,b.btcc,b.cxcc from uf_jcl_kq_ccjl a left join uf_jcl_kq_ccjl_dt1 b on a.id = b.mainid where b.ccr=? and b.ksrq>=? and b.ksrq<=? and (b.cxcc=0 or b.cxcc is null) and a.jlzt=1"; - List> evectionList = DbTools.getSqlToList(sql,userId, DateUtil.beforeDay(analysisDate,1),DateUtil.AfterDay(analysisDate,1)); + String sql = "select b.ccr,b.cclx,b.ksrq,b.jsrq,b.kssj,b.jssj,b.ccsc,b.qtcc,b.btcc,b.cxcc from uf_jcl_kq_ccjl a left join uf_jcl_kq_ccjl_dt1 b on a.id = b.mainid where b.ccr=? and b.ksrq<=? and b.jsrq>=? and (b.cxcc=0 or b.cxcc is null) and a.jlzt=1"; + List> evectionList = DbTools.getSqlToList(sql,userId, DateUtil.AfterDay(analysisDate,1), DateUtil.beforeDay(analysisDate,1)); Map> evectionItems = Maps.newHashMap(); @@ -167,8 +167,8 @@ public class GetEvectionCmd extends AbstractCommonCommand> { put("bcsdxx", scheduleResult.get(0).get("bcsdxx")); put("edsc", scheduleResult.get(0).get("edsc")); put("bdlx", ClassSegmentTypeEnum.EVECTION.getKey()); - put("dtkssj",evectionData.get("kssj")); - put("dtjssj",evectionData.get("jssj")); + put("dtkssj",evectionData.get("ksrq")+" "+evectionData.get("kssj")); + put("dtjssj",evectionData.get("jsrq")+" "+evectionData.get("jssj")); put("ksdk",evectionItem.get("lgsbxydk")); put("jsdk",evectionItem.get("fgsbxydk")); put("tqdkfzs","60"); @@ -176,14 +176,6 @@ public class GetEvectionCmd extends AbstractCommonCommand> { put("tqlghlfzs",evectionItem.get("tqlghlfzs")); put("thfghlfzs",evectionItem.get("thfghlfzs")); }}; - String ksrq = Util.null2String(evectionData.get("ksrq")); - if (DateUtil.getTime(ksrq).compareTo(DateUtil.getTime(analysisDate)) == 0){ - evectioneMap.put("gsrq",ClassBelongToEnum.NOWDAY.getKey()); - }else if (DateUtil.getTime(ksrq).compareTo(DateUtil.getTime(analysisDate)) < 0){ - evectioneMap.put("gsrq",ClassBelongToEnum.YESTERDAY.getKey()); - }else if (DateUtil.getTime(ksrq).compareTo(DateUtil.getTime(analysisDate)) > 0){ - evectioneMap.put("gsrq",ClassBelongToEnum.NEXTDAY.getKey()); - } evectionSchedule.add(evectioneMap); } } diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetScheduleResultListCmd.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetScheduleResultListCmd.java index 5a1ab79..0d576de 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetScheduleResultListCmd.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/GetScheduleResultListCmd.java @@ -163,6 +163,7 @@ public class GetScheduleResultListCmd extends AbstractCommonCommand needClockIn = scheduleResult.stream().filter(e -> { String dtkssj = Utils.getkssjTime(e,analysisDate); + if (Utils.ifAskforOrEvctionClassSegment(e.get("bdlx").toString())){ + dtkssj = Utils.getjssjTime(e,analysisDate); + } if (time.equals(dtkssj)){ return true; }else { @@ -519,6 +522,9 @@ public class GetClockInPointCmd extends AbstractCommonCommand needClockIn = scheduleResult.stream().filter(e -> { String dtjssj = Utils.getjssjTime(e,analysisDate); + if (Utils.ifAskforOrEvctionClassSegment(e.get("bdlx").toString())){ + dtjssj = Utils.getkssjTime(e,analysisDate); + } if (time.equals(dtjssj)){ return true; }else { diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ShiftServiceImpl.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ShiftServiceImpl.java index fd8e8c7..6530cbf 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ShiftServiceImpl.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/service/impl/ShiftServiceImpl.java @@ -399,11 +399,10 @@ public class ShiftServiceImpl extends Service implements ShiftService { // map.put("sfxx",resultList.get(0).get("sfxx")); // map.put("btgz",resultList.get(0).get("btgz")); // map.put("xxbdkzdjb",resultList.get(0).get("xxbdkzdjb")); - map.put("edts",new BigDecimal(overtimePlan.get("jbsc").toString()).divide(new BigDecimal(resultList.get(0).get("edsc").toString(),new MathContext(2, RoundingMode.HALF_UP)))); }else { map.put("edsc","0"); - map.put("edts","1"); } + map.put("edts","0"); map.put("bdlx", ClassSegmentTypeEnum.OVERTIME_PLAN.getKey()); map.put("dtkssj",overtimePlan.get("kssj")); map.put("dtjssj",overtimePlan.get("jssj")); @@ -416,8 +415,15 @@ public class ShiftServiceImpl extends Service implements ShiftService { map.put("thdkfzs","60"); map.put("rqlx",dateType); map.put("edxss",overtimePlan.get("jbsc")); + map.put("edfzs",Double.valueOf(overtimePlan.get("jbsc").toString())*60); map.put("jblx",attendanceItems); - map.put("gsrq", ClassBelongToEnum.NOWDAY.getKey()); + if (DateUtil.getTime(overtimePlan.get("ksrq").toString()).compareTo(DateUtil.getTime(e.getKey())) < 0){ + map.put("gsrq", ClassBelongToEnum.YESTERDAY.getKey()); + }else if (DateUtil.getTime(overtimePlan.get("ksrq").toString()).compareTo(DateUtil.getTime(e.getKey())) == 0){ + map.put("gsrq", ClassBelongToEnum.NOWDAY.getKey()); + }else if (DateUtil.getTime(overtimePlan.get("ksrq").toString()).compareTo(DateUtil.getTime(e.getKey())) > 0){ + map.put("gsrq", ClassBelongToEnum.NEXTDAY.getKey()); + } if (attendanceItems.size() >0){ map.put("ksdk",attendanceItems.get(0).get("ksjbbxydk")); map.put("jsdk",attendanceItems.get(0).get("jsjbbxydk")); @@ -426,39 +432,27 @@ public class ShiftServiceImpl extends Service implements ShiftService { map.put("jbwdhlfzs",attendanceItems.get(0).get("jbwdhlfzs")); map.put("jbzzhlfzs",attendanceItems.get(0).get("jbzzhlfzs")); } - if (resultList.size() > 1){ + if (resultList.size() > 0){ String kssjbegin = Utils.getkssjTime(resultList.get(0),e.getKey()); String kssjend = Utils.getkssjTime(resultList.get(resultList.size()-1),e.getKey()); String kssj = overtimePlan.get("ksrq")+" "+overtimePlan.get("kssj"); if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(kssjbegin)) <0){ //加班计划在开头 - if (resultList.get(0).get("dtkssj").equals(overtimePlan.get("jssj")) && - resultList.get(0).get("ksdk").equals(CheckBoxEnum.CHECKED.getKey()) && - map.get("ksdk").equals(CheckBoxEnum.CHECKED.getKey()) && - map.get("jsdk").equals(CheckBoxEnum.CHECKED.getKey())){ - //当加班结束时间和早上打卡时间重合时 - - } resultList.add(0,map); }else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(kssjend)) >0){ //加班计划在末尾 - if (resultList.get(0).get("dtjssj").equals(overtimePlan.get("kssj")) && - resultList.get(0).get("jsdk").equals(CheckBoxEnum.CHECKED.getKey()) && - map.get("ksdk").equals(CheckBoxEnum.CHECKED.getKey()) && - map.get("jsdk").equals(CheckBoxEnum.CHECKED.getKey())){ - //当加班结束时间和晚上下班时间重合时1 - - } resultList.add(map); }else { - //加班计划在中间 - for (int j=1;j=0 && DateUtil.getTime(kssj3).compareTo(DateUtil.getTime(kssj2)) <=0){ - resultList.add(j,map); - break; + if (resultList.size() > 1){ + //加班计划在中间 + for (int j=1;j=0 && DateUtil.getTime(kssj3).compareTo(DateUtil.getTime(kssj2)) <=0){ + resultList.add(j,map); + break; + } } } } @@ -473,25 +467,26 @@ public class ShiftServiceImpl extends Service implements ShiftService { /** * 合并请假或出差 + * * @param askForLeaveAndEvctionSchedule * @param analysisDate * @return */ - public List> mergeAskForLeaveAndEvctionSchedule(List> askForLeaveAndEvctionSchedule,String analysisDate){ + public List> mergeAskForLeaveAndEvctionSchedule(List> askForLeaveAndEvctionSchedule, String analysisDate) { - askForLeaveAndEvctionSchedule = askForLeaveAndEvctionSchedule.stream().sorted(Comparator.comparing(e->DateUtil.getTime(Utils.getkssjTime(e,analysisDate)).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList()); + askForLeaveAndEvctionSchedule = askForLeaveAndEvctionSchedule.stream().sorted(Comparator.comparing(e -> DateUtil.getTime(Utils.getkssjTime(e, analysisDate)).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList()); - for (int i=0;i paramMap = ParamUtil.request2Map(request); -// Map paramMap = Maps.newHashMap(); -// paramMap.put("startDate","2024-07-18"); -// paramMap.put("endDate","2024-07-18"); -// paramMap.put("userIds","81"); + //Map paramMap = ParamUtil.request2Map(request); + Map paramMap = Maps.newHashMap(); + paramMap.put("startDate","2024-07-18"); + paramMap.put("endDate","2024-07-18"); + paramMap.put("userIds","81"); String startDate = Util.null2String(paramMap.get("startDate")); String startBeforeDate = DateUtil.beforeDay(startDate,2); @@ -234,16 +234,16 @@ public class AttendanceanalysisAction { Map>> collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("userid")))); //请假记录 - sql = "select a.qjry,a.jqlx,a.cxjqj,b.ksrq,b.kssj,b.jsrq,b.jssj,b.qjsc,b.qtj,b.btj from uf_jcl_kq_qjjl a left join uf_jcl_kq_qjjl_dt1 b on a.id = b.mainid where a.qjry in ("+userIds+") and b.ksrq>=? and b.ksrq<=? and (b.cxqj=0 or b.cxqj is null) order by b.ksrq,b.kssj"; - List> askforLeaveList = DbTools.getSqlToList(sql,startDate,endDate); + sql = "select a.qjry,a.jqlx,a.cxjqj,b.ksrq,b.kssj,b.jsrq,b.jssj,b.qjsc,b.qtj,b.btj from uf_jcl_kq_qjjl a left join uf_jcl_kq_qjjl_dt1 b on a.id = b.mainid where a.qjry in ("+userIds+") and b.ksrq<=? and b.jsrq>=? and (b.cxqj=0 or b.cxqj is null) a.jlzt=1 order by b.ksrq,b.kssj"; + List> askforLeaveList = DbTools.getSqlToList(sql,DateUtil.AfterDay(endDate,1), DateUtil.beforeDay(startDate,1)); for (Map map :askforLeaveList){ map.put("jqlx_name",itemMap.get(map.get("jqlx"))); } Map>> askforLeavecollect = askforLeaveList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("qjry")))); //出差记录 - sql = "select b.ccr,a.cclx,a.ccsd,b.ksrq,b.jsrq,b.kssj,b.jssj,b.ccsc,b.qtcc,b.btcc,b.cxcc from uf_jcl_kq_ccjl a left join uf_jcl_kq_ccjl_dt1 b on a.id = b.mainid where b.ccr in ("+userIds+") and b.ksrq>=? and b.ksrq<=? and (b.cxcc=0 or b.cxcc is null) order by b.ksrq,b.kssj"; - List> evectionList = DbTools.getSqlToList(sql,startDate,endDate); + sql = "select b.ccr,a.cclx,a.ccsd,b.ksrq,b.jsrq,b.kssj,b.jssj,b.ccsc,b.qtcc,b.btcc,b.cxcc from uf_jcl_kq_ccjl a left join uf_jcl_kq_ccjl_dt1 b on a.id = b.mainid where b.ccr in ("+userIds+") and b.ksrq<=? and b.jsrq>=? and (b.cxcc=0 or b.cxcc is null) a.jlzt=1 order by b.ksrq,b.kssj "; + List> evectionList = DbTools.getSqlToList(sql,DateUtil.AfterDay(endDate,1), DateUtil.beforeDay(startDate,1)); for (Map map :evectionList){ map.put("cclx_name",itemMap.get(map.get("cclx"))); } @@ -258,7 +258,7 @@ public class AttendanceanalysisAction { Map>> overPlancollect = overPlanDataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("jbry")))); //加班结果 - sql = "select szjg,jbry,sjksrq,jbjgly,sjjsrq,sjkssj,sjjssj,sjjbsc,jblx,zt from uf_jcl_kq_jbjg where jbry in ("+userIds+") and sjksrq>=? and sjjsrq<=? order by sjksrq,sjkssj"; + sql = "select szjg,jbry,sjksrq,jbjgly,sjjsrq,sjkssj,sjjssj,sjjbsc,jblx,zt from uf_jcl_kq_jbjg where jbry in ("+userIds+") and sjksrq>=? and sjjsrq<=? and zt=1 order by sjksrq,sjkssj"; List> overPlanResultList = DbTools.getSqlToList(sql,startDate,endDate); for (Map map :overPlanResultList){ map.put("jblx_name",itemMap.get(map.get("jblx"))); diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java index b201731..e74a015 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java @@ -382,13 +382,13 @@ public class AttendanceAnalysisWrapper extends Service { askForLeaveAndEvctionSchedule = askForLeaveAndEvctionSchedule.stream().sorted(Comparator.comparing(e -> DateUtil.getTime(Utils.getkssjTime(e, analysisDate)).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList()); for (int i = 0; i < askForLeaveAndEvctionSchedule.size() - 1; i++) { - String beforeDtkssj = askForLeaveAndEvctionSchedule.get(i).get("dtkssj").toString(); - String beforeDtjssj = askForLeaveAndEvctionSchedule.get(i).get("dtjssj").toString(); + String beforeDtkssj = Utils.getkssjTime(askForLeaveAndEvctionSchedule.get(i),analysisDate); + String beforeDtjssj = Utils.getjssjTime(askForLeaveAndEvctionSchedule.get(i),analysisDate); for (int j = i + 1; j < askForLeaveAndEvctionSchedule.size(); j++) { - String dtkssj = askForLeaveAndEvctionSchedule.get(j).get("dtkssj").toString(); - String dtjssj = askForLeaveAndEvctionSchedule.get(j).get("dtjssj").toString(); - if (beforeDtjssj.equals(dtkssj)) { + String dtkssj = Utils.getkssjTime(askForLeaveAndEvctionSchedule.get(j),analysisDate); + String dtjssj = Utils.getjssjTime(askForLeaveAndEvctionSchedule.get(j),analysisDate); + if (DateUtil.getTime(beforeDtjssj).compareTo(DateUtil.getTime(dtkssj)) == 0) { askForLeaveAndEvctionSchedule.get(i).put("dtjssj", dtjssj); askForLeaveAndEvctionSchedule.get(i).put("jsdk", askForLeaveAndEvctionSchedule.get(j).get("jsdk")); askForLeaveAndEvctionSchedule.get(i).put("thfghlfzs", askForLeaveAndEvctionSchedule.get(j).get("thfghlfzs")); diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java index 19343a7..0cf7b78 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java @@ -59,9 +59,9 @@ public class UpdateAttendanceResultWrapper extends Service { Map> evectionItems = (Map>)params.get("evectionItems"); //以开始时间分割班次 - Map>> startScheduleResult = scheduleResult.stream().collect(Collectors.groupingBy(e->e.get("dtkssj").toString())); + Map>> startScheduleResult = scheduleResult.stream().collect(Collectors.groupingBy(e->Utils.getkssjTime(e,analysisDate))); //以结束时间分割班次 - Map>> endScheduleResult = scheduleResult.stream().collect(Collectors.groupingBy(e->e.get("dtjssj").toString())); + Map>> endScheduleResult = scheduleResult.stream().collect(Collectors.groupingBy(e->Utils.getjssjTime(e,analysisDate))); List> resultList = Lists.newArrayList(); for (ClockPointDTO clcokInTimedto :clcokInTimeDataList){ @@ -83,13 +83,13 @@ public class UpdateAttendanceResultWrapper extends Service { //班次 Map classInfo = Maps.newHashMap(); if (ClockPointEnum.START.equals(pointType) && !ifevectionOrAskLeave){ - classInfo = startScheduleResult.get(pointTime.split(" ")[1]).get(0); + classInfo = startScheduleResult.get(pointTime).get(0); }else if (ClockPointEnum.END.equals(pointType) && !ifevectionOrAskLeave){ - classInfo = endScheduleResult.get(pointTime.split(" ")[1]).get(0); + classInfo = endScheduleResult.get(pointTime).get(0); }else if (ClockPointEnum.START.equals(pointType) && ifevectionOrAskLeave){ - classInfo = endScheduleResult.get(pointTime.split(" ")[1]).get(0); + classInfo = endScheduleResult.get(pointTime).get(0); }else if (ClockPointEnum.END.equals(pointType) && ifevectionOrAskLeave){ - classInfo = startScheduleResult.get(pointTime.split(" ")[1]).get(0); + classInfo = startScheduleResult.get(pointTime).get(0); } if (ClockPointEnum.EMPTY.equals(timeType) || clcokInTimeData == null){ //漏卡 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 645c21f..6cc759c 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 @@ -421,6 +421,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService { List> organizationList = Lists.newArrayList(); String sql = "select id,sfxx,bcsdxx from uf_jcl_kq_bcxx where id = ?"; List> list = Lists.newArrayList(); + Set userIds = Sets.newHashSet(); if (!"".equals(bcxxId)){ list = DbTools.getSqlToList(sql,bcxxId); } @@ -454,6 +455,8 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService { map.put("pbsj",DateUtil.getCurrentTime("yyyy-MM-dd HH:mm").split(" ")[1]); if (!"".equals(map.get("rqlx"))){ organizationList.add(map); + }else { + userIds.add(str); } } @@ -465,6 +468,9 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService { if (!(boolean)resultMap.get("result")){ throw new AttendanceRunTimeException("插入数据失败,请检查修改班次人员是否有对应的企业日历"); } + if (userIds.size() > 0){ + throw new AttendanceRunTimeException("部分人员更新失败,请检查修改班次人员是否有对应的企业日历"); + } return resultMap; } diff --git a/src/com/engine/jucailinkq/common/util/Utils.java b/src/com/engine/jucailinkq/common/util/Utils.java index 3f8c70e..0acc972 100644 --- a/src/com/engine/jucailinkq/common/util/Utils.java +++ b/src/com/engine/jucailinkq/common/util/Utils.java @@ -906,12 +906,17 @@ public class Utils { * @return */ public static String getkssjTime(Map schedulingMap,String date){ + if (ifAskforOrEvctionClassSegment(schedulingMap.get("bdlx").toString())){ + return schedulingMap.get("dtkssj").toString(); + } String gsrq = Util.null2String(schedulingMap.get("gsrq")); String kssj = Util.null2String(schedulingMap.get("dtkssj")); if (gsrq.equals(ClassBelongToEnum.YESTERDAY.getKey())){ date = DateUtil.beforeDay(date,1); }else if (gsrq.equals(ClassBelongToEnum.NEXTDAY.getKey())){ date = DateUtil.AfterDay(date,1); + }else if (gsrq.equals(ClassBelongToEnum.NOWDAY.getKey())){ + date = date; } kssj = date+" "+kssj; @@ -939,6 +944,9 @@ public class Utils { * @return */ public static String getjssjTime(Map schedulingMap,String date){ + if (ifAskforOrEvctionClassSegment(schedulingMap.get("bdlx").toString())){ + return schedulingMap.get("dtjssj").toString(); + } String gsrq = Util.null2String(schedulingMap.get("gsrq")); String jssj = Util.null2String(schedulingMap.get("dtjssj")); String kssj = Util.null2String(schedulingMap.get("dtkssj")); @@ -946,6 +954,8 @@ public class Utils { date = DateUtil.beforeDay(date,1); }else if (gsrq.equals(ClassBelongToEnum.NEXTDAY.getKey())){ date = DateUtil.AfterDay(date,1); + }else if (gsrq.equals(ClassBelongToEnum.NOWDAY.getKey())){ + date = date; } jssj = date+" "+jssj; kssj = date+" "+kssj;