Commit a94b1737 by tangzhaoqian
parents 98dd23a2 95558238
...@@ -32,6 +32,7 @@ import cn.hutool.core.date.DateUtil; ...@@ -32,6 +32,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.timer.api.aspect.lang.annotation.Log; import cn.timer.api.aspect.lang.annotation.Log;
import cn.timer.api.aspect.lang.enums.BusinessType; 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.QyzxEmpEntAsso;
import cn.timer.api.bean.qyzx.QyzxEmpLogin; import cn.timer.api.bean.qyzx.QyzxEmpLogin;
import cn.timer.api.bean.qyzx.QyzxEntInfoM; import cn.timer.api.bean.qyzx.QyzxEntInfoM;
...@@ -48,6 +49,7 @@ import cn.timer.api.config.enuminterface.YgEnumInterface.YgJobType; ...@@ -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.CommonEnum;
import cn.timer.api.config.enums.SysRoleType; import cn.timer.api.config.enums.SysRoleType;
import cn.timer.api.controller.spmk.service.SpmkServiceImpl; 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.QyzxEmpEntAssoMapper;
import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper; import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper;
import cn.timer.api.dao.yggl.YgglMainEmpMapper; import cn.timer.api.dao.yggl.YgglMainEmpMapper;
...@@ -457,6 +459,9 @@ public class LoginController { ...@@ -457,6 +459,9 @@ public class LoginController {
@Autowired @Autowired
SpmkServiceImpl SpmkService; SpmkServiceImpl SpmkService;
@Autowired
private KqglAssoLeaveRulesMapper kqglassoleaverulesmapper;
/** /**
* 注册企业 * 注册企业
...@@ -541,6 +546,31 @@ public class LoginController { ...@@ -541,6 +546,31 @@ public class LoginController {
QyzxAuthAccount.builder().createdTime(new Date()).maxChildAccount(maxChildAccount).name(username) QyzxAuthAccount.builder().createdTime(new Date()).maxChildAccount(maxChildAccount).name(username)
.accountPhone(phone).empNum(login.getId()).orgCode(qyzxEntInfoM.getId()).build().insert(); // TODO .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("注册企业成功"); return ResultUtil.success("注册企业成功");
} catch (Exception e) { } catch (Exception e) {
......
...@@ -42,7 +42,6 @@ import cn.timer.api.bean.dzht.DzhtAssoQyyz; ...@@ -42,7 +42,6 @@ import cn.timer.api.bean.dzht.DzhtAssoQyyz;
import cn.timer.api.bean.dzht.DzhtAssoQyzc; import cn.timer.api.bean.dzht.DzhtAssoQyzc;
import cn.timer.api.bean.dzht.DzhtAssoSdgzq; import cn.timer.api.bean.dzht.DzhtAssoSdgzq;
import cn.timer.api.bean.dzht.DzhtAssoTpyz; import cn.timer.api.bean.dzht.DzhtAssoTpyz;
import cn.timer.api.bean.qyzx.QyzxEmpEntAsso;
import cn.timer.api.bean.qyzx.businessService.QyzxRemainingQuantity; import cn.timer.api.bean.qyzx.businessService.QyzxRemainingQuantity;
import cn.timer.api.bean.qyzx.businessService.QyzxUseRecord; import cn.timer.api.bean.qyzx.businessService.QyzxUseRecord;
import cn.timer.api.bean.yggl.YgglMainEmp; import cn.timer.api.bean.yggl.YgglMainEmp;
...@@ -206,16 +205,16 @@ public class DzhtController2 { ...@@ -206,16 +205,16 @@ public class DzhtController2 {
@GetMapping("/getOrganizations") @GetMapping("/getOrganizations")
@ApiOperation(value = "查询企业信息s", httpMethod = "GET", notes = "接口发布说明") @ApiOperation(value = "查询企业信息s", httpMethod = "GET", notes = "接口发布说明")
public Result<Object> getOrganizations(@CurrentUser UserBean userBean) { public Result<Object> getOrganizations(@CurrentUser UserBean userBean) {
List<QyzxEmpEntAsso> list = QyzxEmpEntAsso.builder().build().selectList( // List<QyzxEmpEntAsso> list = QyzxEmpEntAsso.builder().build().selectList(
new QueryWrapper<QyzxEmpEntAsso>().lambda().eq(QyzxEmpEntAsso::getEmpNum, userBean.getEmpNum())); // new QueryWrapper<QyzxEmpEntAsso>().lambda().eq(QyzxEmpEntAsso::getEmpNum, userBean.getEmpNum()));
List<Integer> orgCodeList = Lists.transform(list, newList -> newList.getOrgCode()); // List<Integer> orgCodeList = Lists.transform(list, newList -> newList.getOrgCode());
List<String> orgIds = new ArrayList<String>(); List<String> orgIds = new ArrayList<String>();
for (Integer orgCode : orgCodeList) { // for (Integer orgCode : orgCodeList) {
DzhtAssoQyzc qyzc = DzhtAssoQyzc.builder().build().selectOne(new QueryWrapper<DzhtAssoQyzc>().lambda() DzhtAssoQyzc qyzc = DzhtAssoQyzc.builder().build().selectOne(new QueryWrapper<DzhtAssoQyzc>().lambda()
.eq(DzhtAssoQyzc::getOrgCode, orgCode).select(DzhtAssoQyzc::getOrgId)); .eq(DzhtAssoQyzc::getOrgCode, userBean.getOrgCode()).select(DzhtAssoQyzc::getOrgId));
if (qyzc != null) if (qyzc != null)
orgIds.add(qyzc.getOrgId()); orgIds.add(qyzc.getOrgId());
} // }
JSONObject j = null; JSONObject j = null;
List<JSONObject> result = new ArrayList<JSONObject>(); List<JSONObject> result = new ArrayList<JSONObject>();
try { try {
......
...@@ -122,12 +122,14 @@ public class ClockInController { ...@@ -122,12 +122,14 @@ public class ClockInController {
int shifid = 0; int shifid = 0;
long punchcardtime = 0,punchstart = 0,punchend = 0;//应打卡时间,应打卡开始时间,应打卡结束时间 long punchcardtime = 0,punchstart = 0,punchend = 0;//应打卡时间,应打卡开始时间,应打卡结束时间
boolean isRange = true; boolean isRange = true;//是否在打卡时间范围内
int atttype = 0; int atttype = 0;
int execution_status = 0;//执行状态 int execution_status = 0;//执行状态
boolean kskd = true;//识别是否更新最后一次打卡 boolean kskd = true;//识别是否更新最后一次打卡 针对于最后一次下班卡
boolean sbdkkd = false;//针对于上班 未超过上班卡打卡 视为无效打卡
ClockCollectData clockt = new ClockCollectData(); ClockCollectData clockt = new ClockCollectData();
...@@ -269,104 +271,144 @@ public class ClockInController { ...@@ -269,104 +271,144 @@ public class ClockInController {
Map<String, Integer> comparemap = new HashMap(); Map<String, Integer> comparemap = new HashMap();
if(dkmc == null) { if(dkmc == null) {
kskd = false; kskd = false;
//打卡时间 对比班次 接近哪个时间就打哪个时间的卡
if(attdate.getAttsch().size() == 2 || attdate.getAttsch().size() == 4 || attdate.getAttsch().size() == 6) { if(attdate.getAttsch().size() == 2) {//一套上下班 上班1
comparemap.put("1", dakjg1); comparemap.put("2", dakjg2); atttype = 1;
} }else {
if(attdate.getAttsch().size() == 4 || attdate.getAttsch().size() == 6) { //打卡时间 对比班次 接近哪个时间就打哪个时间的卡
comparemap.put("3", dakjg3); comparemap.put("4", dakjg4); if(attdate.getAttsch().size() == 4 || attdate.getAttsch().size() == 6) {
} //punchstart 应打卡开始时间 punchend:应打卡结束时间 time_:打卡时间
if(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");
comparemap.put("5", dakjg5); comparemap.put("6", dakjg6); 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; execution_status = 1;
}else { }else {
execution_status = 2; execution_status = 2;
// boolean kskd = true; if(attdate.getAttsch().size() == 2) { //下班1
if(attdate.getAttsch().size() == 2) { if(dkmc.getSbdk1() != null && dkmc.getXbdk1() == null){
if(dkmc.getSbdk1() != null) { //如果第二次后打卡,未超过上班时间 即为打卡失效
kskd = false; Date sd1=df1.parse(ClockInTool.stampToDate(String.valueOf(starttime1)));//应打卡时间
comparemap.clear(); Date sd2=df1.parse(sStdIoTime);//打卡时间
comparemap.put("2", dakjg2); if(sd1.after(sd2)) {
} sbdkkd = true;//
//最后一次卡的时候 再继续打视为更新最后一次打卡 atttype = 1;
if(dkmc.getXbdk1() != null) { }else {
kskd = true; kskd = false;
comparemap.put("2", dakjg2); atttype = 2;
} }
}else {
//最后一次卡的时候 再继续打视为更新最后一次打卡
kskd = true;
atttype = 2;
}
} }
if(attdate.getAttsch().size() == 4) {
if(dkmc.getSbdk1() != null) {
kskd = false; if(attdate.getAttsch().size() == 4 || attdate.getAttsch().size() == 6) {
comparemap.clear();
comparemap.put("2", dakjg2); comparemap.put("3", dakjg3); boolean effectiveDate1 = ClockInTool.hourMinuteBetween(new SimpleDateFormat("HH:mm").format(time_), new SimpleDateFormat("HH:mm").format(starttime1ks), new SimpleDateFormat("HH:mm").format(starttime1js),"HH:mm");
comparemap.put("4", dakjg4); if (effectiveDate1) {//在范围内就打卡
} if(dkmc.getSbdk1() != null) {
if(dkmc.getXbdk1() != null) { sbdkkd = true;//
kskd = false; }else {
comparemap.clear(); atttype = 1;
comparemap.put("3", dakjg3); comparemap.put("4", dakjg4); }
} }else { isRange = false; }
if(dkmc.getSbdk2() != null) {
kskd = 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");
comparemap.clear(); if (effectiveDate2) {//在范围内就打卡
comparemap.put("4", dakjg4); if(dkmc.getXbdk1() != null) {
} kskd = true;
//最后一次卡的时候 再继续打视为更新最后一次打卡 }else {
if(dkmc.getXbdk2() != null) { kskd = false;
kskd = true; atttype = 2;
comparemap.clear(); }
comparemap.put("4", dakjg4); }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(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) { boolean effectiveDate5 = ClockInTool.hourMinuteBetween(new SimpleDateFormat("HH:mm").format(time_), new SimpleDateFormat("HH:mm").format(starttime3ks), new SimpleDateFormat("HH:mm").format(starttime3js),"HH:mm");
// comparemap.put("6", dakjg6); 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 { ...@@ -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) { if(clockt.getShifid() != 0) {
KqglAssoBcsz shif = KqglAssoBcsz.builder().build(); KqglAssoBcsz shif = KqglAssoBcsz.builder().build();
...@@ -453,8 +447,9 @@ public class ClockInController { ...@@ -453,8 +447,9 @@ public class ClockInController {
} }
//打卡记录录入 -- 打卡是否有时间范围限制 //打卡记录录入 -- 打卡是否有时间范围限制
// boolean isRange = true; // boolean isRange = true;
if(punchstart>0 && punchend>0) { if(attdate.getAttsch().size() == 2) {
if(punchstart>0 && punchend>0) {
String staputime = new SimpleDateFormat("HH:mm").format(punchstart);//应打卡开始时间 String staputime = new SimpleDateFormat("HH:mm").format(punchstart);//应打卡开始时间
String entputime = new SimpleDateFormat("HH:mm").format(punchend);//应打卡结束时间 String entputime = new SimpleDateFormat("HH:mm").format(punchend);//应打卡结束时间
String DKputime = new SimpleDateFormat("HH:mm").format(time_);//打卡时间 String DKputime = new SimpleDateFormat("HH:mm").format(time_);//打卡时间
...@@ -466,6 +461,8 @@ public class ClockInController { ...@@ -466,6 +461,8 @@ public class ClockInController {
// throw new Exception(); // throw new Exception();
} }
} }
}
if(isRange) { if(isRange) {
int yzcd = shif.getYzcdfzs();//严重迟到分钟数 int yzcd = shif.getYzcdfzs();//严重迟到分钟数
int kgcdfzs = shif.getKgcdfzs();//旷工迟到分钟数 int kgcdfzs = shif.getKgcdfzs();//旷工迟到分钟数
...@@ -626,7 +623,7 @@ public class ClockInController { ...@@ -626,7 +623,7 @@ public class ClockInController {
} }
pcd.setId(dkmc.getId()); pcd.setId(dkmc.getId());
if(atttype <= 6 && atttype > 0){ if(atttype <= 6 && atttype > 0 && !sbdkkd){
int update = kqglassodkmxmapper.updateByPrimaryKeySelective(pcd);//修改打卡记录 int update = kqglassodkmxmapper.updateByPrimaryKeySelective(pcd);//修改打卡记录
} }
} }
...@@ -782,7 +779,7 @@ public class ClockInController { ...@@ -782,7 +779,7 @@ public class ClockInController {
String attdate_ = new SimpleDateFormat("yy-MM-dd").format(Double.valueOf(attendance_date));//转换打卡时间格式 String attdate_ = new SimpleDateFormat("yy-MM-dd").format(Double.valueOf(attendance_date));//转换打卡时间格式
//true:确认为最后一次打卡更新打卡时 之前打卡的一条数据变为“打卡更新数据” //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) 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))); .eq(KqglAssoDkjl::getSort, atttype).eq(KqglAssoDkjl::getQyid, qyid).eq(KqglAssoDkjl::getAttdate, attdate_+" "+ClockInTool.dateToWeek2(toweek)));
...@@ -864,6 +861,11 @@ public class ClockInController { ...@@ -864,6 +861,11 @@ public class ClockInController {
} }
} }
//第二次未超过应上班打卡时间 打卡为无效
if(sbdkkd) {
status = 0;
atttype = 0;
}
long attime; long attime;
// if(punchcardtime == 0 && !isRange){attime = new Date().getTime();}else{attime = punchcardtime;}// 考勤时间(应打卡时间) // if(punchcardtime == 0 && !isRange){attime = new Date().getTime();}else{attime = punchcardtime;}// 考勤时间(应打卡时间)
......
...@@ -343,13 +343,18 @@ public class TimeCardController { ...@@ -343,13 +343,18 @@ public class TimeCardController {
StartTimeRestDto[] rest = overrules.getStarttime(); StartTimeRestDto[] rest = overrules.getStarttime();
if(rest != null && rest.length>0){ if(rest != null && rest.length>0){
for(int p=0;p<rest.length;p++){ for(int p=0;p<rest.length;p++){
KqglAssOvertimeVice.builder().build().delete(new QueryWrapper<KqglAssOvertimeVice>().lambda().eq(KqglAssOvertimeVice::getOvertimeRulesId, id)); if(rest[p].getStarttime() != null) {
KqglAssOvertimeVice vice = new KqglAssOvertimeVice(); KqglAssOvertimeVice.builder().build().delete(new QueryWrapper<KqglAssOvertimeVice>().lambda().eq(KqglAssOvertimeVice::getOvertimeRulesId, id));
vice.setOvertimeRulesId(id); KqglAssOvertimeVice vice = new KqglAssOvertimeVice();
vice.setBreakStartTime(rest[p].getStarttime()); vice.setOvertimeRulesId(id);
vice.setBreakEndTime(rest[p].getEndtime()); vice.setBreakStartTime(rest[p].getStarttime());
vice.setOverType(rest[p].getOvertype()); vice.setBreakEndTime(rest[p].getEndtime());
overtimes.add(vice); vice.setOverType(rest[p].getOvertype());
overtimes.add(vice);
}else {
break;
}
} }
} }
if(overtimes.size()>0){ if(overtimes.size()>0){
...@@ -481,7 +486,7 @@ public class TimeCardController { ...@@ -481,7 +486,7 @@ public class TimeCardController {
} }
}else { }else {
for(YgglMainEmp ye:yggl) { 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();//员工假期余额 .reason("不限制余额").modifyUserid(userBean.getEmpNum()).modifyTimer(new Date().getTime()).orgCode(userBean.getOrgCode()).isAutomatic(1).modifyNumber(1).build().insert();//员工假期余额
} }
} }
...@@ -852,6 +857,17 @@ public class TimeCardController { ...@@ -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") @GetMapping(value="/balance_header")
...@@ -871,15 +887,38 @@ public class TimeCardController { ...@@ -871,15 +887,38 @@ public class TimeCardController {
@ApiOperation(value = "30: 查询列表-假期规则", httpMethod = "GET", notes = " 查询列表-假期规则") @ApiOperation(value = "30: 查询列表-假期规则", httpMethod = "GET", notes = " 查询列表-假期规则")
@ApiOperationSupport(order = 30) @ApiOperationSupport(order = 30)
public Result<Object> selectListLeaveRules(@CurrentUser UserBean userBean) { public Result<Object> selectListLeaveRules(@CurrentUser UserBean userBean) {
List<KqglAssoLeaveRules> balheas = new LambdaQueryChainWrapper<KqglAssoLeaveRules>(kqglassoleaverulesmapper).eq(KqglAssoLeaveRules :: getOrgCode,userBean.getOrgCode()) // List<KqglAssoLeaveRules> balheas = new LambdaQueryChainWrapper<KqglAssoLeaveRules>(kqglassoleaverulesmapper).eq(KqglAssoLeaveRules :: getOrgCode,userBean.getOrgCode())
.eq(KqglAssoLeaveRules :: getLeaveType, 2).or().eq(KqglAssoLeaveRules :: getIsOpen, 1).list(); // .eq(KqglAssoLeaveRules :: getLeaveType, 2).or().eq(KqglAssoLeaveRules :: getIsOpen, 1).list();
List<LeaveTypeDto> leas = new ArrayList<LeaveTypeDto>(); List<LeaveTypeDto> leas = new ArrayList<LeaveTypeDto>();
for(KqglAssoLeaveRules rul : balheas) { KqglAssoYhkqz yhd = KqglAssoYhkqz.builder().build().selectOne(new QueryWrapper<KqglAssoYhkqz>().lambda().eq(KqglAssoYhkqz::getUserid, userBean.getEmpNum()).eq(KqglAssoYhkqz::getQyid, userBean.getOrgCode()));
LeaveTypeDto lea = LeaveTypeDto.builder().build();
lea.setId(rul.getId()); if(yhd != null) {
lea.setValue(rul.getName()); //获取假期适用全公司的
leas.add(lea); 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, "操作成功!"); return ResultUtil.data(leas, "操作成功!");
} }
......
...@@ -105,7 +105,7 @@ public class AttendanceTaskTiming{ ...@@ -105,7 +105,7 @@ public class AttendanceTaskTiming{
*/ */
//3.添加定时任务 每天下午七点执行一次 //3.添加定时任务 每天下午七点执行一次
@Scheduled(cron = "0 0 19 * * ?") // @Scheduled(cron = "0 0 19 * * ?")
//或直接指定时间间隔,例如:5秒 //或直接指定时间间隔,例如:5秒
//@Scheduled(fixedRate=5000) //@Scheduled(fixedRate=5000)
......
...@@ -308,8 +308,10 @@ public class ZcglController { ...@@ -308,8 +308,10 @@ public class ZcglController {
zcglQueryDto.getTotalPage() == null ? 10 : zcglQueryDto.getTotalPage()); zcglQueryDto.getTotalPage() == null ? 10 : zcglQueryDto.getTotalPage());
QueryWrapper<ZcglAdminZccrkgl> queryWrapper = new QueryWrapper<>(); QueryWrapper<ZcglAdminZccrkgl> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status", 0).between(!StrUtil.hasBlank(s) && !StrUtil.hasBlank(e), "grsj_time", queryWrapper.eq("org_code", userBean.getOrgCode()).eq("status", 0)
!StrUtil.hasBlank(s) ? s : "1000-01-01 00:00:00", !StrUtil.hasBlank(e) ? e : "9999-01-01 00:00:00") .between(!StrUtil.hasBlank(s) && !StrUtil.hasBlank(e), "grsj_time",
!StrUtil.hasBlank(s) ? s : "1000-01-01 00:00:00",
!StrUtil.hasBlank(e) ? e : "9999-01-01 00:00:00")
.and(!StrUtil.hasBlank(q), .and(!StrUtil.hasBlank(q),
wq -> wq.like("zcmc", q).or().like("zcggxh", q).or().like("zcgys", q).or().like("zcbh", q)); wq -> wq.like("zcmc", q).or().like("zcggxh", q).or().like("zcgys", q).or().like("zcbh", q));
...@@ -336,8 +338,10 @@ public class ZcglController { ...@@ -336,8 +338,10 @@ public class ZcglController {
zcglQueryDto.getTotalPage() == null ? 10 : zcglQueryDto.getTotalPage()); zcglQueryDto.getTotalPage() == null ? 10 : zcglQueryDto.getTotalPage());
QueryWrapper<ZcglAdminZccrkgl> queryWrapper = new QueryWrapper<>(); QueryWrapper<ZcglAdminZccrkgl> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status", 1).between(!StrUtil.hasBlank(s) && !StrUtil.hasBlank(e), "grsj_time", queryWrapper.eq("org_code", userBean.getOrgCode()).eq("status", 1)
!StrUtil.hasBlank(s) ? s : "1000-01-01 00:00:00", !StrUtil.hasBlank(e) ? e : "9999-01-01 00:00:00") .between(!StrUtil.hasBlank(s) && !StrUtil.hasBlank(e), "grsj_time",
!StrUtil.hasBlank(s) ? s : "1000-01-01 00:00:00",
!StrUtil.hasBlank(e) ? e : "9999-01-01 00:00:00")
.and(!StrUtil.hasBlank(q), .and(!StrUtil.hasBlank(q),
wq -> wq.like("zcmc", q).or().like("zcggxh", q).or().like("zcgys", q).or().like("zcbh", q)); wq -> wq.like("zcmc", q).or().like("zcggxh", q).or().like("zcgys", q).or().like("zcbh", q));
......
...@@ -26,4 +26,6 @@ public interface KqglAssoLeaveBalanceMapper extends BaseMapper<KqglAssoLeaveBala ...@@ -26,4 +26,6 @@ public interface KqglAssoLeaveBalanceMapper extends BaseMapper<KqglAssoLeaveBala
AdditionalDto selectAdditional(int orgcode,int empnum); AdditionalDto selectAdditional(int orgcode,int empnum);
List<AdditionalDto> selectAdditionalList(int orgcode); List<AdditionalDto> selectAdditionalList(int orgcode);
EmployeeLeaveBalanceDto selectleavebalanceList(int leaverulesid,int userid);
} }
...@@ -19,4 +19,8 @@ public interface KqglAssoLeaveRulesMapper extends BaseMapper<KqglAssoLeaveRules> ...@@ -19,4 +19,8 @@ public interface KqglAssoLeaveRulesMapper extends BaseMapper<KqglAssoLeaveRules>
int insertleaverulesList(List<KqglAssoLeaveRules> kqglassoleaverules); int insertleaverulesList(List<KqglAssoLeaveRules> kqglassoleaverules);
List<KqglAssoLeaveRules> selHeaderdata(int orgcode,int leavetype,int isopen); List<KqglAssoLeaveRules> selHeaderdata(int orgcode,int leavetype,int isopen);
List<KqglAssoLeaveRules> selCompanywidedata(int orgcode,int leavetype,int isopen);
List<KqglAssoLeaveRules> AssociatedHolidays(int attgroupid);
} }
...@@ -25,6 +25,11 @@ public class EmployeeLeaveBalanceDto { ...@@ -25,6 +25,11 @@ public class EmployeeLeaveBalanceDto {
@ApiModelProperty(value = "入职日期 ", example = "字段说明") @ApiModelProperty(value = "入职日期 ", example = "字段说明")
private String rztime; private String rztime;
@ApiModelProperty(value = " ", example = "字段说明")
private String userid;
@ApiModelProperty(value = " ", example = "字段说明")
private String balancedays;
@ApiModelProperty(value = "表数据", example = "字段说明") @ApiModelProperty(value = "表数据", example = "字段说明")
List<BalanceSheetDataDto> balanceTo; List<BalanceSheetDataDto> balanceTo;
......
...@@ -109,7 +109,6 @@ public class AliyunSMS { ...@@ -109,7 +109,6 @@ public class AliyunSMS {
request.putQueryParameter("RegionId", REGION_ID); request.putQueryParameter("RegionId", REGION_ID);
request.putQueryParameter("PhoneNumbers", phone); request.putQueryParameter("PhoneNumbers", phone);
request.putQueryParameter("SignName", PROJECT_NAME); request.putQueryParameter("SignName", PROJECT_NAME);
switch (templateCode) { switch (templateCode) {
case 1: case 1:
request.putQueryParameter(CODE_NAME, PinType.AUTHENTICATION.getCode()); request.putQueryParameter(CODE_NAME, PinType.AUTHENTICATION.getCode());
...@@ -145,8 +144,8 @@ public class AliyunSMS { ...@@ -145,8 +144,8 @@ public class AliyunSMS {
String a = null; String a = null;
try { try {
response = client.getCommonResponse(request); response = client.getCommonResponse(request);
a = response.getData(); a = response.getData();
// System.err.println("response:"+a); // 短信服务响应内容
} catch (ServerException e) { } catch (ServerException e) {
e.printStackTrace(); e.printStackTrace();
} catch (ClientException e) { } catch (ClientException e) {
......
...@@ -2,6 +2,8 @@ package cn.timer.api.utils.router.business; ...@@ -2,6 +2,8 @@ package cn.timer.api.utils.router.business;
import java.text.ParseException; import java.text.ParseException;
import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -45,7 +47,7 @@ public class EvectionBusiness extends SpmkAssoBusiness { ...@@ -45,7 +47,7 @@ public class EvectionBusiness extends SpmkAssoBusiness {
String businessTrip = ObjectUtil.isNull(jsonObj.get("__businessTrip",FromData.class)) ? null : jsonObj.get("__businessTrip",FromData.class).getValue(); String businessTrip = ObjectUtil.isNull(jsonObj.get("__businessTrip",FromData.class)) ? null : jsonObj.get("__businessTrip",FromData.class).getValue();
// 上传文件 // 上传文件
String UploadAttachment = ObjectUtil.isNull(jsonObj.get("UploadAttachment",FromData.class)) ? null : jsonObj.get("UploadAttachment",FromData.class).getValue(); String UploadAttachment = ObjectUtil.isNull(jsonObj.get("UploadAttachment",FromData.class)) ? null : jsonObj.get("UploadAttachment",FromData.class).getValue();
System.out.println(approveId);
AttEvectionApprovalDto eaD = AttEvectionApprovalDto AttEvectionApprovalDto eaD = AttEvectionApprovalDto
.builder() .builder()
.userid(id) .userid(id)
......
...@@ -176,7 +176,7 @@ config-8timer: ...@@ -176,7 +176,7 @@ config-8timer:
register-company-max-num: 100 #默认最大公司数量 register-company-max-num: 100 #默认最大公司数量
register-childAccount-max-num: 10 #默认最大子账号数量 register-childAccount-max-num: 10 #默认最大子账号数量
Aliyun: # 阿里云 Aliyun: # 阿里云
PROJECT_NAME: 8小时人事管家 PROJECT_NAME: 8小时协同办公 #8小时人事管家
REGION_ID: cn-shenzhen REGION_ID: cn-shenzhen
ACCESSKEY_ID: LTAI4FuaShJWQ1dggsFWG5CC ACCESSKEY_ID: LTAI4FuaShJWQ1dggsFWG5CC
SECRET: EJ6qToT4T4u0B5Rb6qrta9WkyGHvGR SECRET: EJ6qToT4T4u0B5Rb6qrta9WkyGHvGR
......
...@@ -151,7 +151,7 @@ config-8timer: ...@@ -151,7 +151,7 @@ config-8timer:
register-company-max-num: 100 register-company-max-num: 100
register-childAccount-max-num: 10 register-childAccount-max-num: 10
Aliyun: # 阿里云 Aliyun: # 阿里云
PROJECT_NAME: 8小时人事管家 PROJECT_NAME: 8小时协同办公 #8小时人事管家
REGION_ID: cn-shenzhen REGION_ID: cn-shenzhen
ACCESSKEY_ID: LTAI4FuaShJWQ1dggsFWG5CC ACCESSKEY_ID: LTAI4FuaShJWQ1dggsFWG5CC
SECRET: EJ6qToT4T4u0B5Rb6qrta9WkyGHvGR SECRET: EJ6qToT4T4u0B5Rb6qrta9WkyGHvGR
......
...@@ -150,7 +150,7 @@ config-8timer: ...@@ -150,7 +150,7 @@ config-8timer:
register-company-max-num: 100 register-company-max-num: 100
register-childAccount-max-num: 10 register-childAccount-max-num: 10
Aliyun: # 阿里云 Aliyun: # 阿里云
PROJECT_NAME: 8小时人事管家 PROJECT_NAME: 8小时协同办公 #8小时人事管家
REGION_ID: cn-shenzhen REGION_ID: cn-shenzhen
ACCESSKEY_ID: LTAI4FuaShJWQ1dggsFWG5CC ACCESSKEY_ID: LTAI4FuaShJWQ1dggsFWG5CC
SECRET: EJ6qToT4T4u0B5Rb6qrta9WkyGHvGR SECRET: EJ6qToT4T4u0B5Rb6qrta9WkyGHvGR
......
...@@ -22,6 +22,8 @@ ...@@ -22,6 +22,8 @@
<result column="empname" property="empname" /> <result column="empname" property="empname" />
<result column="department" property="department" /> <result column="department" property="department" />
<result column="rztime" property="rztime" /> <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"> <collection property="balanceTo" ofType="cn.timer.api.dto.kqmk.BalanceSheetDataDto">
<result column="leaverulesid" property="leaverulesid"/> <result column="leaverulesid" property="leaverulesid"/>
<result column="balancedays" property="balancedays"/> <result column="balancedays" property="balancedays"/>
...@@ -113,6 +115,14 @@ ...@@ -113,6 +115,14 @@
where emp.org_code = #{orgcode} where emp.org_code = #{orgcode}
and emp.job_status in (0,1) and emp.job_status in (0,1)
</select> </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>
<!-- <!--
......
...@@ -50,6 +50,20 @@ ...@@ -50,6 +50,20 @@
WHERE org_code = #{orgcode} WHERE org_code = #{orgcode}
AND (leave_type = #{leavetype} OR is_open = #{isopen}) AND (leave_type = #{leavetype} OR is_open = #{isopen})
</select> </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 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) insert into kqgl_asso_leave_rules (name,company,leave_type,apply,create_time,create_userid,org_code,is_open,leave_balance,rules_type)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment