diff --git a/src/main/java/cn/timer/api/controller/LoginController.java b/src/main/java/cn/timer/api/controller/LoginController.java index f937df5..1f46d63 100644 --- a/src/main/java/cn/timer/api/controller/LoginController.java +++ b/src/main/java/cn/timer/api/controller/LoginController.java @@ -32,6 +32,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.timer.api.aspect.lang.annotation.Log; import cn.timer.api.aspect.lang.enums.BusinessType; +import cn.timer.api.bean.kqmk.KqglAssoLeaveRules; import cn.timer.api.bean.qyzx.QyzxEmpEntAsso; import cn.timer.api.bean.qyzx.QyzxEmpLogin; import cn.timer.api.bean.qyzx.QyzxEntInfoM; @@ -48,6 +49,7 @@ import cn.timer.api.config.enuminterface.YgEnumInterface.YgJobType; import cn.timer.api.config.enums.CommonEnum; import cn.timer.api.config.enums.SysRoleType; import cn.timer.api.controller.spmk.service.SpmkServiceImpl; +import cn.timer.api.dao.kqmk.KqglAssoLeaveRulesMapper; import cn.timer.api.dao.qyzx.QyzxEmpEntAssoMapper; import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper; import cn.timer.api.dao.yggl.YgglMainEmpMapper; @@ -457,6 +459,9 @@ public class LoginController { @Autowired SpmkServiceImpl SpmkService; + + @Autowired + private KqglAssoLeaveRulesMapper kqglassoleaverulesmapper; /** * 注册企业 @@ -541,6 +546,31 @@ public class LoginController { QyzxAuthAccount.builder().createdTime(new Date()).maxChildAccount(maxChildAccount).name(username) .accountPhone(phone).empNum(login.getId()).orgCode(qyzxEntInfoM.getId()).build().insert(); // TODO // 主账号权限表 + + + //*****************************考勤假期初始化 + //获取模板数据 + List<KqglAssoLeaveRules> ruless = new LambdaQueryChainWrapper<KqglAssoLeaveRules>(kqglassoleaverulesmapper).eq(KqglAssoLeaveRules::getOrgCode, 0).list(); + //查询当前公司是否已初始化 + KqglAssoLeaveRules rule = kqglassoleaverulesmapper.selectOne(new QueryWrapper<KqglAssoLeaveRules>().lambda().eq(KqglAssoLeaveRules::getOrgCode, qyzxEntInfoM.getId()) + .eq(KqglAssoLeaveRules::getLeaveType, 1).last("LIMIT 1")); + if(rule == null) { + List<KqglAssoLeaveRules> rullist = new ArrayList<KqglAssoLeaveRules>(); + for(KqglAssoLeaveRules rul : ruless){ + KqglAssoLeaveRules vice = KqglAssoLeaveRules.builder().name(rul.getName()).company(rul.getCompany()).leaveType(rul.getLeaveType()) + .apply(rul.getApply()).createTime(new Date().getTime()).createUserid(999).orgCode(qyzxEntInfoM.getId()) + .isOpen(rul.getIsOpen()).leaveBalance(rul.getLeaveBalance()).rulesType(rul.getRulesType()).build(); + rullist.add(vice); + } + if(rullist.size() > 0) { + kqglassoleaverulesmapper.insertleaverulesList(rullist); + } + System.out.println("操作成功!"); + }else { + System.out.println("重复初始化数据!"); + } + + return ResultUtil.success("注册企业成功"); } catch (Exception e) { diff --git a/src/main/java/cn/timer/api/controller/kqgl/ClockInController.java b/src/main/java/cn/timer/api/controller/kqgl/ClockInController.java index 0c9692b..0e7a641 100644 --- a/src/main/java/cn/timer/api/controller/kqgl/ClockInController.java +++ b/src/main/java/cn/timer/api/controller/kqgl/ClockInController.java @@ -122,12 +122,14 @@ public class ClockInController { int shifid = 0; long punchcardtime = 0,punchstart = 0,punchend = 0;//应打卡时间,应打卡开始时间,应打卡结束时间 - boolean isRange = true; + boolean isRange = true;//是否在打卡时间范围内 int atttype = 0; int execution_status = 0;//执行状态 - boolean kskd = true;//识别是否更新最后一次打卡 + boolean kskd = true;//识别是否更新最后一次打卡 针对于最后一次下班卡 + + boolean sbdkkd = false;//针对于上班 未超过上班卡打卡 视为无效打卡 ClockCollectData clockt = new ClockCollectData(); @@ -269,104 +271,144 @@ public class ClockInController { Map<String, Integer> comparemap = new HashMap(); if(dkmc == null) { kskd = false; - //打卡时间 对比班次 接近哪个时间就打哪个时间的卡 - if(attdate.getAttsch().size() == 2 || attdate.getAttsch().size() == 4 || attdate.getAttsch().size() == 6) { - comparemap.put("1", dakjg1); comparemap.put("2", dakjg2); - } - if(attdate.getAttsch().size() == 4 || attdate.getAttsch().size() == 6) { - comparemap.put("3", dakjg3); comparemap.put("4", dakjg4); - } - if(attdate.getAttsch().size() == 6) { - comparemap.put("5", dakjg5); comparemap.put("6", dakjg6); + + if(attdate.getAttsch().size() == 2) {//一套上下班 上班1 + atttype = 1; + }else { + //打卡时间 对比班次 接近哪个时间就打哪个时间的卡 + if(attdate.getAttsch().size() == 4 || attdate.getAttsch().size() == 6) { + //punchstart 应打卡开始时间 punchend:应打卡结束时间 time_:打卡时间 + boolean effectiveDate1 = ClockInTool.hourMinuteBetween(new SimpleDateFormat("HH:mm").format(time_), new SimpleDateFormat("HH:mm").format(starttime1ks), new SimpleDateFormat("HH:mm").format(starttime1js),"HH:mm"); + if (effectiveDate1) {//在范围内就打卡 + atttype = 1; + }else { + isRange = false; + } + + boolean effectiveDate2 = ClockInTool.hourMinuteBetween(new SimpleDateFormat("HH:mm").format(time_), new SimpleDateFormat("HH:mm").format(endtime1ks), new SimpleDateFormat("HH:mm").format(endtime1js),"HH:mm"); + if (effectiveDate2) {//在范围内就打卡 + atttype = 2; + }else { + isRange = false; + } + + boolean effectiveDate3 = ClockInTool.hourMinuteBetween(new SimpleDateFormat("HH:mm").format(time_), new SimpleDateFormat("HH:mm").format(starttime2ks), new SimpleDateFormat("HH:mm").format(starttime2js),"HH:mm"); + if (effectiveDate3) {//在范围内就打卡 + atttype = 3; + }else { + isRange = false; + } + + boolean effectiveDate4 = ClockInTool.hourMinuteBetween(new SimpleDateFormat("HH:mm").format(time_), new SimpleDateFormat("HH:mm").format(endtime2ks), new SimpleDateFormat("HH:mm").format(endtime2js),"HH:mm"); + if (effectiveDate4) {//在范围内就打卡 + atttype = 4; + }else { + isRange = false; + } + } + if(attdate.getAttsch().size() == 6) { + boolean effectiveDate5 = ClockInTool.hourMinuteBetween(new SimpleDateFormat("HH:mm").format(time_), new SimpleDateFormat("HH:mm").format(starttime3ks), new SimpleDateFormat("HH:mm").format(starttime3js),"HH:mm"); + if (effectiveDate5) {//在范围内就打卡 + atttype = 5; + }else { + isRange = false; + } + + boolean effectiveDate6 = ClockInTool.hourMinuteBetween(new SimpleDateFormat("HH:mm").format(time_), new SimpleDateFormat("HH:mm").format(endtime3ks), new SimpleDateFormat("HH:mm").format(endtime3js),"HH:mm"); + if (effectiveDate6) {//在范围内就打卡 + atttype = 6; + }else { + isRange = false; + } + } } + execution_status = 1; }else { execution_status = 2; -// boolean kskd = true; - if(attdate.getAttsch().size() == 2) { - if(dkmc.getSbdk1() != null) { - kskd = false; - comparemap.clear(); - comparemap.put("2", dakjg2); - } - //最后一次卡的时候 再继续打视为更新最后一次打卡 - if(dkmc.getXbdk1() != null) { - kskd = true; - comparemap.put("2", dakjg2); - } + if(attdate.getAttsch().size() == 2) { //下班1 + if(dkmc.getSbdk1() != null && dkmc.getXbdk1() == null){ + //如果第二次后打卡,未超过上班时间 即为打卡失效 + Date sd1=df1.parse(ClockInTool.stampToDate(String.valueOf(starttime1)));//应打卡时间 + Date sd2=df1.parse(sStdIoTime);//打卡时间 + if(sd1.after(sd2)) { + sbdkkd = true;// + atttype = 1; + }else { + kskd = false; + atttype = 2; + } + }else { + //最后一次卡的时候 再继续打视为更新最后一次打卡 + kskd = true; + atttype = 2; + } } - if(attdate.getAttsch().size() == 4) { - if(dkmc.getSbdk1() != null) { - kskd = false; - comparemap.clear(); - comparemap.put("2", dakjg2); comparemap.put("3", dakjg3); - comparemap.put("4", dakjg4); - } - if(dkmc.getXbdk1() != null) { - kskd = false; - comparemap.clear(); - comparemap.put("3", dakjg3); comparemap.put("4", dakjg4); - } - if(dkmc.getSbdk2() != null) { - kskd = false; - comparemap.clear(); - comparemap.put("4", dakjg4); - } - //最后一次卡的时候 再继续打视为更新最后一次打卡 - if(dkmc.getXbdk2() != null) { - kskd = true; - comparemap.clear(); - comparemap.put("4", dakjg4); - } + + + if(attdate.getAttsch().size() == 4 || attdate.getAttsch().size() == 6) { + + boolean effectiveDate1 = ClockInTool.hourMinuteBetween(new SimpleDateFormat("HH:mm").format(time_), new SimpleDateFormat("HH:mm").format(starttime1ks), new SimpleDateFormat("HH:mm").format(starttime1js),"HH:mm"); + if (effectiveDate1) {//在范围内就打卡 + if(dkmc.getSbdk1() != null) { + sbdkkd = true;// + }else { + atttype = 1; + } + }else { isRange = false; } + + boolean effectiveDate2 = ClockInTool.hourMinuteBetween(new SimpleDateFormat("HH:mm").format(time_), new SimpleDateFormat("HH:mm").format(endtime1ks), new SimpleDateFormat("HH:mm").format(endtime1js),"HH:mm"); + if (effectiveDate2) {//在范围内就打卡 + if(dkmc.getXbdk1() != null) { + kskd = true; + }else { + kskd = false; + atttype = 2; + } + }else { isRange = false; } + + boolean effectiveDate3 = ClockInTool.hourMinuteBetween(new SimpleDateFormat("HH:mm").format(time_), new SimpleDateFormat("HH:mm").format(starttime2ks), new SimpleDateFormat("HH:mm").format(starttime2js),"HH:mm"); + if (effectiveDate3) {//在范围内就打卡 + if(dkmc.getSbdk2() != null) { + sbdkkd = true;// + }else { + atttype = 3; + } + }else { isRange = false; } + + boolean effectiveDate4 = ClockInTool.hourMinuteBetween(new SimpleDateFormat("HH:mm").format(time_), new SimpleDateFormat("HH:mm").format(endtime2ks), new SimpleDateFormat("HH:mm").format(endtime2js),"HH:mm"); + if (effectiveDate4) {//在范围内就打卡 + if(dkmc.getXbdk2() != null) { + kskd = true; + }else { + kskd = false; + atttype = 4; + } + }else { isRange = false; } + } if(attdate.getAttsch().size() == 6) { - if(dkmc.getSbdk1() != null) { - kskd = false; - comparemap.clear(); - comparemap.put("2", dakjg2); comparemap.put("3", dakjg3); - comparemap.put("4", dakjg4); comparemap.put("5", dakjg5); - comparemap.put("6", dakjg6); - } - if(dkmc.getXbdk1() != null) { - kskd = false; - comparemap.clear(); - comparemap.put("3", dakjg3); comparemap.put("4", dakjg4); - comparemap.put("5", dakjg5); comparemap.put("6", dakjg6); - } - if(dkmc.getSbdk2() != null) { - kskd = false; - comparemap.clear(); - comparemap.put("4", dakjg4); comparemap.put("5", dakjg5); - comparemap.put("6", dakjg6); - } - if(dkmc.getXbdk2() != null) { - kskd = false; - comparemap.clear(); - comparemap.put("5", dakjg5); comparemap.put("6", dakjg6); - } - if(dkmc.getSbdk3() != null) { - kskd = false; - comparemap.clear(); - comparemap.put("6", dakjg6); - } - - //最后一次卡的时候 再继续打视为更新最后一次打卡 - if(dkmc.getXbdk3() != null) { - kskd = true; - comparemap.clear(); - comparemap.put("6", dakjg6); - } -// if(kskd) { -// comparemap.put("6", dakjg6); -// } + boolean effectiveDate5 = ClockInTool.hourMinuteBetween(new SimpleDateFormat("HH:mm").format(time_), new SimpleDateFormat("HH:mm").format(starttime3ks), new SimpleDateFormat("HH:mm").format(starttime3js),"HH:mm"); + if (effectiveDate5) {//在范围内就打卡 + if(dkmc.getSbdk2() != null) { + sbdkkd = true;// + }else { + atttype = 5; + } + }else { isRange = false; } + + boolean effectiveDate6 = ClockInTool.hourMinuteBetween(new SimpleDateFormat("HH:mm").format(time_), new SimpleDateFormat("HH:mm").format(endtime3ks), new SimpleDateFormat("HH:mm").format(endtime3js),"HH:mm"); + if (effectiveDate6) {//在范围内就打卡 + if(dkmc.getXbdk2() != null) { + kskd = true; + }else { + kskd = false; + atttype = 6; + } + }else { isRange = false; } } } - if(comparemap.size() > 0) { - List<Map.Entry<String,Integer>> list = new ArrayList(comparemap.entrySet()); - Collections.sort(list, (o1, o2) -> (o1.getValue() - o2.getValue())); - atttype = Integer.valueOf(list.get(0).getKey());//应打卡的顺序 - } } @@ -397,54 +439,6 @@ public class ClockInController { } - // long punchcardtime,punchstart,punchend = 0;//应打卡时间,应打卡开始时间,应打卡结束时间 - // int atttype = 0; -// if(dkmc == null) {//上班1 ****新增 -// punchcardtime = starttime1; -// punchstart = starttime1ks; -// punchend = starttime1js; -// atttype = 1; -// }else { -// if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() == null)){ //下班1 -// punchcardtime = endtime1; -// punchstart = endtime1ks; -// punchend = endtime1js; -// atttype = 2; -// }else if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (!("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() != null) -// && (("").equals(dkmc.getSbdk2()) || dkmc.getSbdk2() == null)){ //上班2 -// punchcardtime = starttime2; -// punchstart = starttime2ks; -// punchend = starttime2js; -// atttype = 3; -// }else if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (!("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() != null) -// && (!("").equals(dkmc.getSbdk2()) || dkmc.getSbdk2() != null) && (("").equals(dkmc.getXbdk2()) || dkmc.getXbdk2() == null)){ //下班2 -// punchcardtime = endtime2; -// punchstart = endtime2ks; -// punchend = endtime2js; -// atttype = 4; -// }else if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (!("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() != null) -// && (!("").equals(dkmc.getSbdk2()) || dkmc.getSbdk2() != null) && (!("").equals(dkmc.getXbdk2()) || dkmc.getXbdk2() != null) -// && (("").equals(dkmc.getSbdk3()) || dkmc.getSbdk3() == null)){ //上班3 -// punchcardtime = starttime3; -// punchstart = starttime3ks; -// punchend = starttime3js; -// atttype = 5; -// }else if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (!("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() != null) -// && (!("").equals(dkmc.getSbdk2()) || dkmc.getSbdk2() != null) && (!("").equals(dkmc.getXbdk2()) || dkmc.getXbdk2() != null) -// && (!("").equals(dkmc.getSbdk3()) || dkmc.getSbdk3() != null) && (("").equals(dkmc.getXbdk3()) || dkmc.getXbdk3() == null)){ //下班3 -// punchcardtime = endtime3; -// punchstart = endtime3ks; -// punchend = endtime3js; -// atttype = 6; -// }else { -// punchcardtime = 0;punchstart = 0;punchend = 0;atttype = 7; -// } -// } - - - - - if(clockt.getShifid() != 0) { KqglAssoBcsz shif = KqglAssoBcsz.builder().build(); @@ -453,8 +447,9 @@ public class ClockInController { } //打卡记录录入 -- 打卡是否有时间范围限制 - // boolean isRange = true; - if(punchstart>0 && punchend>0) { + // boolean isRange = true; + if(attdate.getAttsch().size() == 2) { + if(punchstart>0 && punchend>0) { String staputime = new SimpleDateFormat("HH:mm").format(punchstart);//应打卡开始时间 String entputime = new SimpleDateFormat("HH:mm").format(punchend);//应打卡结束时间 String DKputime = new SimpleDateFormat("HH:mm").format(time_);//打卡时间 @@ -466,6 +461,8 @@ public class ClockInController { // throw new Exception(); } } + } + if(isRange) { int yzcd = shif.getYzcdfzs();//严重迟到分钟数 int kgcdfzs = shif.getKgcdfzs();//旷工迟到分钟数 @@ -626,7 +623,7 @@ public class ClockInController { } pcd.setId(dkmc.getId()); - if(atttype <= 6 && atttype > 0){ + if(atttype <= 6 && atttype > 0 && !sbdkkd){ int update = kqglassodkmxmapper.updateByPrimaryKeySelective(pcd);//修改打卡记录 } } @@ -782,7 +779,7 @@ public class ClockInController { String attdate_ = new SimpleDateFormat("yy-MM-dd").format(Double.valueOf(attendance_date));//转换打卡时间格式 //true:确认为最后一次打卡更新打卡时 之前打卡的一条数据变为“打卡更新数据” - if(kskd) { + if(kskd && (atttype == 2 || atttype == 4 || atttype == 6)) { KqglAssoDkjl dkjj = KqglAssoDkjl.builder().build().selectOne(new QueryWrapper<KqglAssoDkjl>().lambda().eq(KqglAssoDkjl::getUserId, userid).eq(KqglAssoDkjl::getType, 2) .eq(KqglAssoDkjl::getSort, atttype).eq(KqglAssoDkjl::getQyid, qyid).eq(KqglAssoDkjl::getAttdate, attdate_+" "+ClockInTool.dateToWeek2(toweek))); @@ -864,6 +861,11 @@ public class ClockInController { } } + //第二次未超过应上班打卡时间 打卡为无效 + if(sbdkkd) { + status = 0; + atttype = 0; + } long attime; // if(punchcardtime == 0 && !isRange){attime = new Date().getTime();}else{attime = punchcardtime;}// 考勤时间(应打卡时间) diff --git a/src/main/java/cn/timer/api/controller/kqgl/TimeCardController.java b/src/main/java/cn/timer/api/controller/kqgl/TimeCardController.java index c4ad190..8de305e 100644 --- a/src/main/java/cn/timer/api/controller/kqgl/TimeCardController.java +++ b/src/main/java/cn/timer/api/controller/kqgl/TimeCardController.java @@ -343,13 +343,18 @@ public class TimeCardController { StartTimeRestDto[] rest = overrules.getStarttime(); if(rest != null && rest.length>0){ for(int p=0;p<rest.length;p++){ - KqglAssOvertimeVice.builder().build().delete(new QueryWrapper<KqglAssOvertimeVice>().lambda().eq(KqglAssOvertimeVice::getOvertimeRulesId, id)); - KqglAssOvertimeVice vice = new KqglAssOvertimeVice(); - vice.setOvertimeRulesId(id); - vice.setBreakStartTime(rest[p].getStarttime()); - vice.setBreakEndTime(rest[p].getEndtime()); - vice.setOverType(rest[p].getOvertype()); - overtimes.add(vice); + if(rest[p].getStarttime() != null) { + KqglAssOvertimeVice.builder().build().delete(new QueryWrapper<KqglAssOvertimeVice>().lambda().eq(KqglAssOvertimeVice::getOvertimeRulesId, id)); + KqglAssOvertimeVice vice = new KqglAssOvertimeVice(); + vice.setOvertimeRulesId(id); + vice.setBreakStartTime(rest[p].getStarttime()); + vice.setBreakEndTime(rest[p].getEndtime()); + vice.setOverType(rest[p].getOvertype()); + overtimes.add(vice); + }else { + break; + } + } } if(overtimes.size()>0){ @@ -481,7 +486,7 @@ public class TimeCardController { } }else { for(YgglMainEmp ye:yggl) { - KqglAssoLeaveBalance.builder().leaveRulesId(id).userid(ye.getEmpNum()).modifyAction(1).balanceDays("-1-1") + KqglAssoLeaveBalance.builder().leaveRulesId(id).userid(ye.getEmpNum()).modifyAction(1).balanceDays("-1") .reason("不限制余额").modifyUserid(userBean.getEmpNum()).modifyTimer(new Date().getTime()).orgCode(userBean.getOrgCode()).isAutomatic(1).modifyNumber(1).build().insert();//员工假期余额 } } @@ -852,6 +857,17 @@ public class TimeCardController { } /** + * 根据考勤余额id获取信息 + */ + @GetMapping(value="/hqleavebalance/{id}") + @ApiOperation(value = "获取班次信息-根据班次id", httpMethod = "GET", notes = "接口发布说明") + public Result<Object> hqleavebalance(@PathVariable("id") Integer id,@CurrentUser UserBean userBean) { + EmployeeLeaveBalanceDto leanemp = kqglassoleavebalancemapper.selectleavebalanceList(id,userBean.getEmpNum()); + return ResultUtil.data(leanemp, "操作成功!"); + } + + + /** * 根据 组织机构代码获取员工假期余额表头 */ @GetMapping(value="/balance_header") @@ -871,15 +887,38 @@ public class TimeCardController { @ApiOperation(value = "30: 查询列表-假期规则", httpMethod = "GET", notes = " 查询列表-假期规则") @ApiOperationSupport(order = 30) public Result<Object> selectListLeaveRules(@CurrentUser UserBean userBean) { - List<KqglAssoLeaveRules> balheas = new LambdaQueryChainWrapper<KqglAssoLeaveRules>(kqglassoleaverulesmapper).eq(KqglAssoLeaveRules :: getOrgCode,userBean.getOrgCode()) - .eq(KqglAssoLeaveRules :: getLeaveType, 2).or().eq(KqglAssoLeaveRules :: getIsOpen, 1).list(); +// List<KqglAssoLeaveRules> balheas = new LambdaQueryChainWrapper<KqglAssoLeaveRules>(kqglassoleaverulesmapper).eq(KqglAssoLeaveRules :: getOrgCode,userBean.getOrgCode()) +// .eq(KqglAssoLeaveRules :: getLeaveType, 2).or().eq(KqglAssoLeaveRules :: getIsOpen, 1).list(); List<LeaveTypeDto> leas = new ArrayList<LeaveTypeDto>(); - for(KqglAssoLeaveRules rul : balheas) { - LeaveTypeDto lea = LeaveTypeDto.builder().build(); - lea.setId(rul.getId()); - lea.setValue(rul.getName()); - leas.add(lea); + KqglAssoYhkqz yhd = KqglAssoYhkqz.builder().build().selectOne(new QueryWrapper<KqglAssoYhkqz>().lambda().eq(KqglAssoYhkqz::getUserid, userBean.getEmpNum()).eq(KqglAssoYhkqz::getQyid, userBean.getOrgCode())); + + if(yhd != null) { + //获取假期适用全公司的 + List<KqglAssoLeaveRules> whole = kqglassoleaverulesmapper.selCompanywidedata(userBean.getOrgCode(), 2, 1); + for(KqglAssoLeaveRules rul : whole) { + LeaveTypeDto lea = LeaveTypeDto.builder().build(); + lea.setId(rul.getId()); + lea.setValue(rul.getName()); + leas.add(lea); + } + + List<KqglAssoLeaveRules> assholi = kqglassoleaverulesmapper.AssociatedHolidays(yhd.getKqzid()); + for(KqglAssoLeaveRules rul1 : assholi) { + LeaveTypeDto lea = LeaveTypeDto.builder().build(); + lea.setId(rul1.getId()); + lea.setValue(rul1.getName()); + leas.add(lea); + } } + +// List<KqglAssoLeaveRules> balheas = kqglassoleaverulesmapper.selHeaderdata(userBean.getOrgCode(), 2, 1); +// List<LeaveTypeDto> leas = new ArrayList<LeaveTypeDto>(); +// for(KqglAssoLeaveRules rul : balheas) { +// LeaveTypeDto lea = LeaveTypeDto.builder().build(); +// lea.setId(rul.getId()); +// lea.setValue(rul.getName()); +// leas.add(lea); +// } return ResultUtil.data(leas, "操作成功!"); } diff --git a/src/main/java/cn/timer/api/controller/kqgl/atttimer/AttendanceTaskTiming.java b/src/main/java/cn/timer/api/controller/kqgl/atttimer/AttendanceTaskTiming.java index cac97d3..f262529 100644 --- a/src/main/java/cn/timer/api/controller/kqgl/atttimer/AttendanceTaskTiming.java +++ b/src/main/java/cn/timer/api/controller/kqgl/atttimer/AttendanceTaskTiming.java @@ -105,7 +105,7 @@ public class AttendanceTaskTiming{ */ //3.添加定时任务 每天下午七点执行一次 - @Scheduled(cron = "0 0 19 * * ?") +// @Scheduled(cron = "0 0 19 * * ?") //或直接指定时间间隔,例如:5秒 //@Scheduled(fixedRate=5000) diff --git a/src/main/java/cn/timer/api/dao/kqmk/KqglAssoLeaveBalanceMapper.java b/src/main/java/cn/timer/api/dao/kqmk/KqglAssoLeaveBalanceMapper.java index f1eefc1..39f156d 100644 --- a/src/main/java/cn/timer/api/dao/kqmk/KqglAssoLeaveBalanceMapper.java +++ b/src/main/java/cn/timer/api/dao/kqmk/KqglAssoLeaveBalanceMapper.java @@ -26,4 +26,6 @@ public interface KqglAssoLeaveBalanceMapper extends BaseMapper<KqglAssoLeaveBala AdditionalDto selectAdditional(int orgcode,int empnum); List<AdditionalDto> selectAdditionalList(int orgcode); + + EmployeeLeaveBalanceDto selectleavebalanceList(int leaverulesid,int userid); } diff --git a/src/main/java/cn/timer/api/dao/kqmk/KqglAssoLeaveRulesMapper.java b/src/main/java/cn/timer/api/dao/kqmk/KqglAssoLeaveRulesMapper.java index 8b8dd37..3e395f4 100644 --- a/src/main/java/cn/timer/api/dao/kqmk/KqglAssoLeaveRulesMapper.java +++ b/src/main/java/cn/timer/api/dao/kqmk/KqglAssoLeaveRulesMapper.java @@ -19,4 +19,8 @@ public interface KqglAssoLeaveRulesMapper extends BaseMapper<KqglAssoLeaveRules> int insertleaverulesList(List<KqglAssoLeaveRules> kqglassoleaverules); List<KqglAssoLeaveRules> selHeaderdata(int orgcode,int leavetype,int isopen); + + List<KqglAssoLeaveRules> selCompanywidedata(int orgcode,int leavetype,int isopen); + + List<KqglAssoLeaveRules> AssociatedHolidays(int attgroupid); } diff --git a/src/main/java/cn/timer/api/dto/kqmk/EmployeeLeaveBalanceDto.java b/src/main/java/cn/timer/api/dto/kqmk/EmployeeLeaveBalanceDto.java index e23a33d..96a4de3 100644 --- a/src/main/java/cn/timer/api/dto/kqmk/EmployeeLeaveBalanceDto.java +++ b/src/main/java/cn/timer/api/dto/kqmk/EmployeeLeaveBalanceDto.java @@ -25,6 +25,11 @@ public class EmployeeLeaveBalanceDto { @ApiModelProperty(value = "入职日期 ", example = "字段说明") private String rztime; + + @ApiModelProperty(value = " ", example = "字段说明") + private String userid; + @ApiModelProperty(value = " ", example = "字段说明") + private String balancedays; @ApiModelProperty(value = "表数据", example = "字段说明") List<BalanceSheetDataDto> balanceTo; diff --git a/src/main/resources/mapping/kqmk/KqglAssoLeaveBalanceMapper.xml b/src/main/resources/mapping/kqmk/KqglAssoLeaveBalanceMapper.xml index e5f2e81..1c8772a 100644 --- a/src/main/resources/mapping/kqmk/KqglAssoLeaveBalanceMapper.xml +++ b/src/main/resources/mapping/kqmk/KqglAssoLeaveBalanceMapper.xml @@ -22,6 +22,8 @@ <result column="empname" property="empname" /> <result column="department" property="department" /> <result column="rztime" property="rztime" /> + <result column="userid" property="userid" /> + <result column="balancedays" property="balancedays" /> <collection property="balanceTo" ofType="cn.timer.api.dto.kqmk.BalanceSheetDataDto"> <result column="leaverulesid" property="leaverulesid"/> <result column="balancedays" property="balancedays"/> @@ -113,6 +115,14 @@ where emp.org_code = #{orgcode} and emp.job_status in (0,1) </select> + + + <select id="selectleavebalanceList" resultMap="LeaveBalanceMap"> + select bal.userid,SUM(bal.balance_days) as balancedays + from kqgl_asso_leave_balance bal + where bal.leave_rules_id = #{leaverulesid} and bal.userid = #{userid} + GROUP BY bal.userid + </select> <!-- diff --git a/src/main/resources/mapping/kqmk/KqglAssoLeaveRulesMapper.xml b/src/main/resources/mapping/kqmk/KqglAssoLeaveRulesMapper.xml index d82bbdf..cb6f5a3 100644 --- a/src/main/resources/mapping/kqmk/KqglAssoLeaveRulesMapper.xml +++ b/src/main/resources/mapping/kqmk/KqglAssoLeaveRulesMapper.xml @@ -50,6 +50,20 @@ WHERE org_code = #{orgcode} AND (leave_type = #{leavetype} OR is_open = #{isopen}) </select> + + <select id="selCompanywidedata" resultMap="BaseResultMap"> + SELECT <include refid="Base_Column_List" /> + FROM kqgl_asso_leave_rules + WHERE org_code = #{orgcode} + and apply = 0 + AND (leave_type = #{leavetype} OR is_open = #{isopen}) + </select> + + <select id="AssociatedHolidays" resultMap="BaseResultMap"> + SELECT * FROM kqgl_asso_leave_rules rul + where rul.id in (select vic.leave_rules_id from kqgl_asso_rules_vice vic where vic.attgroup_id = #{attgroupid}) + </select> + <insert id="insertleaverulesList" parameterType="java.util.List" > insert into kqgl_asso_leave_rules (name,company,leave_type,apply,create_time,create_userid,org_code,is_open,leave_balance,rules_type)