From a23a0388a6518a8ec52aea15bcc28f2b65fbe288 Mon Sep 17 00:00:00 2001 From: ilal <lalqqhy@163.com> Date: Thu, 14 May 2020 18:21:36 +0800 Subject: [PATCH] 提交 --- src/main/java/cn/timer/api/controller/kqgl/AttController.java | 875 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/main/java/cn/timer/api/controller/kqgl/TimeCardController.java | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 100 insertions(+), 878 deletions(-) diff --git a/src/main/java/cn/timer/api/controller/kqgl/AttController.java b/src/main/java/cn/timer/api/controller/kqgl/AttController.java index f5a80bc..ac0d444 100644 --- a/src/main/java/cn/timer/api/controller/kqgl/AttController.java +++ b/src/main/java/cn/timer/api/controller/kqgl/AttController.java @@ -5068,881 +5068,6 @@ public class AttController { return ResultUtil.success("成功"); } - @GetMapping(value="/synchrotime/{code}") - @ApiOperation(value = "考勤机一键同步", httpMethod = "GET", notes = "接口发布说明") - @ApiOperationSupport(order = 54) - public Result<AttemacDto> SynchronizationTime(@CurrentUser UserBean userBean,@PathVariable("code") String code) { - - String sNowTxt = DateUtil.getStringFormat(System.currentTimeMillis(),"yyyyMMddHHmmss"); - - JSONObject vResultJson = new JSONObject(); - vResultJson.put("time", sNowTxt); - String sFinal = vResultJson.toString(); - - String url = StaticVariable.mac_command; - HttpHeaders headers = new HttpHeaders(); - MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); - params.add("cmd", "SET_TIME"); - params.add("devid", code); - params.add("json", sFinal); - RestTemplate restTemplate = new RestTemplate(); - HttpEntity httpEntity = new HttpEntity(params, headers); - try { - ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class); - } catch (RestClientException e) { -// e.printStackTrace(); - System.err.println("提示:考勤机服务出错"); - return ResultUtil.success("失败"); - } - - return ResultUtil.success("成功"); - } - - - /** - * 移除考勤机管理员 - */ - @PostMapping(value = "/removeadministrator/{kqjid}/{id}") - @ApiOperation(value = "移除考勤机管理员", httpMethod = "POST", notes = "接口发布说明") - @ApiOperationSupport(order = 55) - public Result<Void> RemoveAdministrator(@PathVariable int kqjid,@PathVariable int id, @RequestBody Map<String,String> mmd) { - - String[] xgyh = mmd.get("a").split(","); - if(xgyh.length > 0){ - for(int a=0;a<xgyh.length;a++){ - - AttendanceMachine kqj = attendancemachineservice.selectByPrimaryKey(kqjid);//查询考勤机“序列号” - - JSONObject vResultJson = new JSONObject(); - vResultJson.put("user_id", xgyh[a]); - vResultJson.put("user_privilege", "USER"); - String sFinal = vResultJson.toString(); - - String url = StaticVariable.mac_command; - HttpHeaders headers = new HttpHeaders(); - MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); - params.add("cmd", "SET_USER_INFO"); - params.add("devid", kqj.getCode()); - params.add("json", sFinal); - RestTemplate restTemplate = new RestTemplate(); - HttpEntity httpEntity = new HttpEntity(params, headers); - ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class); - - UserEquiRelation kqjry = new UserEquiRelation(); - kqjry.setId(id); - kqjry.setIsGly(0); - userequirelationmapper.updateByPrimaryKeySelective(kqjry); - - } - } - - - return ResultUtil.success("成功"); - } - - - - - - - - @GetMapping(value="/aircraftmembers/{id}")//****/ - @ApiOperation(value = "考勤机成员", httpMethod = "GET", notes = "接口发布说明") - @ApiOperationSupport(order = 56) - public ResponseResult selectAircraftMembers(@CurrentUser UserBean userBean,@PathVariable("id") Integer id) { - Integer orgCode = userBean.getOrgCode(); - - List<MachinememberDto> kqjcys = userequirelationmapper.selectAircraftMembers(id,orgCode); - - - return new ResponseResult().success("考勤机成员", kqjcys); - } - - -// asDevId //考勤机编号 -// asUserId //打卡用户id -// asVerifyMode //打卡方式 1:指纹 20:人脸 -// asIOMode -// sStdIoTime //打卡时间 - - @PostMapping(value = "/punchclock") - @ApiOperation(value = "考勤机打卡", httpMethod = "POST", notes = "接口发布说明") - public ResponseResult punchclock(@RequestParam String json) { - JSONObject jsonArray = new JSONObject(json); - String asDevId = jsonArray.get("asDevId").toString(); - String asUserId = jsonArray.get("asUserId").toString(); - String asVerifyMode = jsonArray.get("asVerifyMode").toString(); - String asIOMode = "0"; - String sStdIoTime = jsonArray.get("sStdIoTime").toString(); - - AttendanceMachine kqjdev = attendancemachineservice.selectByQyidDev(asDevId); - -/***********************************************************考勤机打卡(开始)********************************************************************************************/ - - YgglMainEmp user = new LambdaQueryChainWrapper<YgglMainEmp>(ygglmainempmapper).eq(YgglMainEmp::getEmpNum, asUserId).eq(YgglMainEmp::getOrgCode, kqjdev.getQyid()).one(); - if(user != null) { - int qyid = user.getOrgCode();//坏小孩【企业id】 - int userid = user.getEmpNum();//用户id - - AttendanceGroup attgro = attendancegroupservice.getAttendanceGroupInformationByUserid(userid,qyid); //考勤组信息 - //pbfs;// 排班方式 1:固定排班;2:自由排班;3:自由工时 - if(attgro != null) { - List<AttGroupBinPunchMode> kqjs = attgroupbinpunchmodeservice.selectMachineByKqzId(attgro.getId());//该考勤组所绑定的考勤机 - - if(kqjs.size() > 0) { - - long time_ = 0; - try { - time_ = DateUtil.getStringTime(sStdIoTime, "yyyy-MM-dd HH:mm:ss"); - } catch (ParseException e1) { - e1.printStackTrace(); - }//打卡时间戳 - String putime = new SimpleDateFormat("yyyy-MM-dd").format(time_);//转换打卡时间格式 - Long startDate = 0l;//打卡当天开始时间 - Long endDate = 0l;//打卡当天结束时间 - try { - startDate = DateUtil.getStartTime(0,DateUtil.getStringTime(putime,"yyyy-MM-dd")).getTime(); - endDate = DateUtil.getnowEndTime(23,DateUtil.getStringTime(putime,"yyyy-MM-dd")).getTime(); - } catch (ParseException e) { - e.printStackTrace(); - } - - int dkmx = 0; - PunchCardDetails dkmc = punchcarddetailsservice.SingleAttendanceDays(userid,startDate,endDate);//查询打卡当天是否有记录 - - AttendanceCardList attdate = MethodCall(qyid,userid,putime); - - ClockCollectData clockt = new ClockCollectData(); - long starttime1 = 0; long starttime1ks = 0; long starttime1js = 0; - long endtime1 = 0; long endtime1ks = 0; long endtime1js = 0; - long starttime2 = 0; long starttime2ks = 0; long starttime2js = 0; - long endtime2 = 0; long endtime2ks = 0; long endtime2js = 0; - long starttime3 = 0; long starttime3ks = 0; long starttime3js = 0; - long endtime3 = 0; long endtime3ks = 0; long endtime3js = 0; - if(attdate.getAttsch().size() > 0) { - List<AttSchedule> ash = attdate.getAttsch(); - int y = 0; - clockt.setShifid(ash.get(y).getId()); - - if(attdate.getAttsch().size() == 2 || attdate.getAttsch().size() == 4 || attdate.getAttsch().size() == 6) { - starttime1 = ash.get(0).getTime(); - starttime1ks = ash.get(0).getStarttime(); - starttime1js = ash.get(0).getEndtime(); - - endtime1 = ash.get(1).getTime(); - endtime1ks = ash.get(1).getStarttime(); - endtime1js = ash.get(1).getEndtime(); - } - if(attdate.getAttsch().size() == 4 || attdate.getAttsch().size() == 6) { - starttime2 = ash.get(2).getTime(); - starttime2ks = ash.get(2).getStarttime(); - starttime2js = ash.get(2).getEndtime(); - - endtime2 = ash.get(3).getTime(); - endtime2ks = ash.get(3).getStarttime(); - endtime2js = ash.get(3).getEndtime(); - } - if(attdate.getAttsch().size() == 6) { - starttime3 = ash.get(4).getTime(); - starttime3ks = ash.get(4).getStarttime(); - starttime3js = ash.get(4).getEndtime(); - - endtime3 = ash.get(5).getTime(); - endtime3ks = ash.get(5).getStarttime(); - endtime3js = ash.get(5).getEndtime(); - } - } - long punchcardtime = 0;//应打卡时间 - long punchstart = 0;//应打卡开始时间 - long 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; - } - } - - - - ShiftManagement shif = null; - if(attdate.getAttsch().size() > 0 && clockt.getShifid() > 0){//有无班次 - shif = shiftmanagementservice.selectByPrimaryKey(clockt.getShifid()); - } - - //打卡记录录入***************************************************************************************************************************** - //打卡是否有时间范围限制 - boolean isRange = true; - 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_);//打卡时间 - - System.out.println(staputime); - System.out.println(entputime); - System.out.println(DKputime); - - boolean effectiveDate = false; - - try { - effectiveDate = hourMinuteBetween(DKputime, staputime, entputime); - } catch (Exception e) { - e.printStackTrace(); - } - if (effectiveDate) { - System.out.println("当前时间在范围内"); - }else { - System.out.println("当前时间在不在范围内"); - isRange = false; - } - } - - if(isRange) { - - if(dkmc == null) {//上班1 ****新增 - PunchCardDetails pcd = new PunchCardDetails(); - pcd.setUserid(userid); - pcd.setData(putime);//打卡日期(yyyy-MM-dd) - - pcd.setSbdk1(time_);//上班1打卡时间 - if(punchcardtime != 0){//有应打卡时间时 - - Long time = (time_ - punchcardtime)/1000/60; - if(time > 0){ - pcd.setSbdk1jg(Math.abs(Integer.valueOf(time.toString())));//上班1打卡结果 - }else{ - pcd.setSbdk1jg(0);// 打卡结果 - } - } - - if(shif != null){ - pcd.setYdkcs(shif.getSxbcs()*2);//应打卡次数 - } - pcd.setQyid(qyid);//企业id - pcd.setDksj(startDate);//打卡时间 - - punchcarddetailsservice.insertSelective(pcd); - - dkmx = pcd.getId(); - - }else { //*****修改 - - dkmx = dkmc.getId(); - PunchCardDetails pcd = new PunchCardDetails(); - if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() == null)){//下班1 - pcd.setId(dkmc.getId()); - pcd.setXbdk1(time_);//下班1打卡时间 - if(punchcardtime != 0){//有应打卡时间时 - Long time = (time_ - punchcardtime)/1000/60; - if(time > 0){ - pcd.setXbdk1jg(0);// 打卡结果 - }else{ - pcd.setXbdk1jg(Math.abs(Integer.valueOf(time.toString())));//上班1打卡结果 - } - } - - if(dkmc.getSbdk1() != null){ - Long time = (time_ - dkmc.getSbdk1())/1000/60; - pcd.setGzsc(Math.abs(Double.valueOf(time.toString())));//只打一次卡时计算工作时长 - } - punchcarddetailsservice.updateByPrimaryKeySelective(pcd);//修改打卡记录 - - }else if((!("").equals(dkmc.getSbdk1()) || dkmc.getSbdk1() != null) && (!("").equals(dkmc.getXbdk1()) || dkmc.getXbdk1() != null) - && (("").equals(dkmc.getSbdk2()) || dkmc.getSbdk2() == null)){//上班2 - pcd.setId(dkmc.getId()); - pcd.setSbdk2(time_);//上班1打卡时间 - if(punchcardtime != 0){//有应打卡时间时 - Long time = (time_ - punchcardtime)/1000/60; - if(time > 0){ - pcd.setSbdk2jg(Math.abs(Integer.valueOf(time.toString()))); - }else{ - pcd.setSbdk2jg(0);// 打卡结果 - } - } - punchcarddetailsservice.updateByPrimaryKeySelective(pcd);//修改打卡记录 - }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 - pcd.setId(dkmc.getId()); - pcd.setXbdk2(time_);//下班1打卡时间 - if(punchcardtime != 0){//有应打卡时间时 - Long time = (time_ - punchcardtime)/1000/60; - if(time > 0){ - pcd.setXbdk2jg(0);// 打卡结果 - }else{ - pcd.setXbdk2jg(Math.abs(Integer.valueOf(time.toString()))); - } - } - - //班次为4次时,计算工作时长 - if(dkmc.getSbdk2() != null){ - Long time = (time_ - dkmc.getSbdk2())/1000/60; - BigDecimal om = new BigDecimal(dkmc.getGzsc()); - BigDecimal on = new BigDecimal(time); - double worktime = Math.abs(om.add(on).doubleValue()); - pcd.setGzsc(worktime); - } - punchcarddetailsservice.updateByPrimaryKeySelective(pcd);//修改打卡记录 - }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 - pcd.setId(dkmc.getId()); - pcd.setSbdk3(time_);//上班1打卡时间 - if(punchcardtime != 0){//有应打卡时间时 - Long time = (time_ - punchcardtime)/1000/60; - if(time > 0){ - pcd.setSbdk3jg(Math.abs(Integer.valueOf(time.toString()))); - }else{ - pcd.setSbdk3jg(0);// 打卡结果 - } - } - punchcarddetailsservice.updateByPrimaryKeySelective(pcd);//修改打卡记录 - }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 - pcd.setId(dkmc.getId()); - pcd.setXbdk3(time_);//下班1打卡时间 - if(punchcardtime != 0){//有应打卡时间时 - Long time = (time_ - punchcardtime)/1000/60; - if(time > 0){ - pcd.setXbdk3jg(0);// 打卡结果 - }else{ - pcd.setXbdk3jg(Math.abs(Integer.valueOf(time.toString()))); - } - } - - //班次为6次时,计算工作时长 - if(dkmc.getSbdk3() != null){ - Long time = (time_ - dkmc.getSbdk3())/1000/60; - BigDecimal om = new BigDecimal(dkmc.getGzsc());//第二次 - BigDecimal on = new BigDecimal(time); - double worktime = Math.abs(om.add(on).doubleValue()); - pcd.setGzsc(worktime); - } - } - - pcd.setId(dkmc.getId()); - if(atttype <= 6){ - int update = punchcarddetailsservice.updateByPrimaryKeySelective(pcd);//修改打卡记录 - } - } - } - - - //原始打卡记录数据录入************************************************************************************************************************************** - PunchRecord pre = new PunchRecord(); - pre.setDktime(time_);// 打卡时间 - - Long time = (time_ - punchcardtime)/1000/60; - if(punchcardtime == 0){ - pre.setResults(0);// 打卡结果 - }else{ - if(isRange) { - if((atttype)%2 > 0){//上班 - if(time > 0){ - pre.setResults(Integer.valueOf(time.toString()));// 打卡结果 - }else{ - pre.setResults(0);// 打卡结果 - } - }else{//下班 - if(time > 0){ - pre.setResults(0);// 打卡结果 - }else{ - pre.setResults(Math.abs(Integer.valueOf(time.toString())));// 打卡结果 - } - } - }else { - pre.setResults(0);// 打卡结果 - } - - } - - pre.setUserId(userid);// 用户id - if((atttype)%2 > 0){ - pre.setType(1);// 类型(类型 0:无排班打卡 1:上班 2:下班) - - if(punchcardtime == 0){//无班次打卡 - pre.setStatus(1); - }else{ - if(isRange) { - //打卡 - if(time > 0){ - pre.setStatus(3);// 状态(0:打卡无效:此记录已被更新 1:正常 2:异常 3:迟到 4:早退 5:补卡 6:请假 7:加班 8:调休) - }else if(pre.getResults() == 0){ - pre.setStatus(1);// 状态(0:打卡无效:此记录已被更新 1:正常 2:异常 3:迟到 4:早退 5:补卡 6:请假 7:加班 8:调休) - } - }else { - pre.setStatus(2);// 状态(0:打卡无效:此记录已被更新 1:正常 2:异常 3:迟到 4:早退 5:补卡 6:请假 7:加班 8:调休) - } - - } - }else{ - pre.setType(2);// 类型(类型 0:无排班打卡 1:上班 2:下班) - if(punchcardtime == 0){//无班次打卡 - pre.setStatus(1); - }else{ - if(isRange) { - //打卡 - if(time < 0){ - pre.setStatus(4);// 状态(0:打卡无效:此记录已被更新 1:正常 2:异常 3:迟到 4:早退 5:补卡 6:请假 7:加班 8:调休) - }else if(pre.getResults() == 0){ - pre.setStatus(1);// 状态(0:打卡无效:此记录已被更新 1:正常 2:异常 3:迟到 4:早退 5:补卡 6:请假 7:加班 8:调休) - } - }else { - pre.setStatus(2);// 状态(0:打卡无效:此记录已被更新 1:正常 2:异常 3:迟到 4:早退 5:补卡 6:请假 7:加班 8:调休) - } - } - } - pre.setSort(atttype);// 序号 - pre.setCardType(3);// 打卡类型(1:GPS,2:WIFI,3:考勤机) - - - pre.setQyid(qyid);// 企业id - String attdate_ = new SimpleDateFormat("yy-MM-dd").format(Double.valueOf(startDate));//转换打卡时间格式 - pre.setAttdate(attdate_+" "+dateToWeek2(putime));// 考勤日期 - - long date = new Date().getTime(); - if(punchcardtime == 0 && !isRange){ - pre.setAttime(date);// 考勤时间(应打卡时间) - }else{ - pre.setAttime(punchcardtime);// 考勤时间(应打卡时间) - } - - pre.setDkmxid(dkmx);// 打卡明细id - pre.setBcid(clockt.getShifid());// 班次id - - if(("1").equals(asVerifyMode)) { - pre.setRemarks("考勤机指纹打卡"); - }else if(("20").equals(asVerifyMode)) { - pre.setRemarks("考勤机人脸打卡"); - } - pre.setPunchmode(Integer.valueOf(asVerifyMode)); - pre.setPunchequipment(asDevId);// - punchrecordservice.insertSelective(pre);//新增打卡记录 - } - } - } - -/***********************************************************考勤机打卡(结束)********************************************************************************************/ - - - return new ResponseResult().success("考勤机打卡成功", null); - } - - /** - * - * @param nowDate 要比较的时间 - * @param startDate 开始时间 - * @param endDate 结束时间 - * @return true在时间段内,false不在时间段内 - * @throws Exception - */ - public static boolean hourMinuteBetween(String nowDate, String startDate, String endDate) throws Exception{ - - SimpleDateFormat format = new SimpleDateFormat("HH:mm"); - - Date now = format.parse(nowDate); - Date start = format.parse(startDate); - Date end = format.parse(endDate); - - long nowTime = now.getTime(); - long startTime = start.getTime(); - long endTime = end.getTime(); - - return nowTime >= startTime && nowTime <= endTime; - - } - - @PostMapping(value = "/removeuser/{kqjid}") - @ApiOperation(value = "批量移除用户", httpMethod = "POST", notes = "接口发布说明") - @ApiOperationSupport(order = 56) - public Result<Void> RemoveUser(@PathVariable int kqjid, @RequestBody Map<String,String> mmd) { - - String[] xgyh = mmd.get("a").split(","); - if(xgyh.length > 0){ - for(int a=0;a<xgyh.length;a++){ - UserEquiRelation scyhkqj = userequirelationmapper.selectByuserIdkqjid(Integer.valueOf(xgyh[a]), kqjid); - - AttendanceMachine kqj = attendancemachineservice.selectByPrimaryKey(scyhkqj.getKqjid());//查询考勤机“序列号” - - JSONObject vResultJson = new JSONObject(); - vResultJson.put("user_id", scyhkqj.getUserId()); - String sFinal = vResultJson.toString(); - - String url = StaticVariable.mac_command; - HttpHeaders headers = new HttpHeaders(); - MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); - params.add("cmd", "DELETE_USER"); - params.add("devid", kqj.getCode()); - params.add("json", sFinal); - RestTemplate restTemplate = new RestTemplate(); - HttpEntity httpEntity = new HttpEntity(params, headers); - try { - ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class); - } catch (RestClientException e) { -// e.printStackTrace(); - System.err.println("提示:考勤机服务出错"); - return ResultUtil.success("失败"); - } - - userequirelationmapper.deleteByPrimaryKey(scyhkqj.getId()); - - //该用户是否为管理员 否则一同删除 -// KqglAssoKqjgly gly = new LambdaQueryChainWrapper<KqglAssoKqjgly>(kqglassokqjglymapper).eq(KqglAssoKqjgly::getKqjid, kqjid) -// .eq(KqglAssoKqjgly::getUserid, xgyh[a]).one(); -// -// if(gly != null){ -// KqglAssoKqjgly.builder().build().deleteById(gly.getId()); -// } - - } - } - - - return ResultUtil.success("成功"); - } - - - @PostMapping(value = "/modifyauthority/{kqjid}/{id}") - @ApiOperation(value = "添加考勤机管理员", httpMethod = "POST", notes = "接口发布说明") - @ApiOperationSupport(order = 55) - public Result<Void> ModifyAuthority(@CurrentUser UserBean userBean,@PathVariable int kqjid,@PathVariable int id, @RequestBody Map<String,String> mmd) { - - Integer empNum = userBean.getEmpNum(); - Integer orgCode = userBean.getOrgCode(); - - String[] xgyh = mmd.get("a").split(","); - if(xgyh.length > 0){ - AttendanceMachine kqj = attendancemachineservice.selectByPrimaryKey(kqjid); - for(int a=0;a<xgyh.length;a++){ - - YgglMainEmp use = new LambdaQueryChainWrapper<YgglMainEmp>(ygglmainempmapper).eq(YgglMainEmp::getEmpNum, xgyh[a]).one(); - - JSONObject vResultJson = new JSONObject(); - vResultJson.put("user_id", xgyh[a]); -// vResultJson.put("user_name", "管-"+use.getName()+"-"+a); - vResultJson.put("user_privilege", "MANAGER"); - String sFinal = vResultJson.toString(); - - String url = StaticVariable.mac_command; - HttpHeaders headers = new HttpHeaders(); - MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); - params.add("cmd", "SET_USER_INFO"); - params.add("devid", kqj.getCode()); - params.add("json", sFinal); - RestTemplate restTemplate = new RestTemplate(); - HttpEntity httpEntity = new HttpEntity(params, headers); - try { - ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class); - } catch (RestClientException e) { -// e.printStackTrace(); - System.err.println("提示:考勤机服务出错"); - return ResultUtil.success("失败"); - } - - - UserEquiRelation kqjry = new UserEquiRelation(); - kqjry.setId(id); - kqjry.setIsGly(1); - userequirelationmapper.updateByPrimaryKeySelective(kqjry); - - - //考勤机管理员 -// KqglAssoKqjgly gly = KqglAssoKqjgly.builder().build(); -// gly.setKqjid(kqjid);//考勤机id -// gly.setGlybh(Integer.valueOf(xgyh[a]));//管理员编号 -// gly.setGluxm("管-"+use.getName());//管理员姓名 -// gly.setUserid(use.getEmpNum());//原用户id -// gly.setTjry(empNum);//添加人员 -// gly.setQyid(orgCode);//企业id -// gly.insertOrUpdate(); - - } - } - return ResultUtil.success("成功"); - - } - - - - public AttendanceCardList MethodCall(int qyid,int userid,String date) { - - AttendanceCardList attcar = new AttendanceCardList(); - - String str = null; - if(!("").equals(date)){ - str = date; - }else{ - Date d = new Date(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - str = sdf.format(d); - } - - Long startDate = 0l; - Long endDate = 0l; - try { - startDate = DateUtil.getStartTime(0,DateUtil.getStringTime(str,"yyyy-MM-dd")).getTime(); - endDate = DateUtil.getnowEndTime(23,DateUtil.getStringTime(str,"yyyy-MM-dd")).getTime(); - } catch (ParseException e) { - e.printStackTrace(); - } - - AttendanceGroup attgro = attendancegroupservice.getAttendanceGroupInformationByUserid(userid,qyid); //考勤组信息 - - //pbfs:排班方式 1:固定排班;2:自由排班;3:自由工时 - if(attgro != null){//判断当前用户是否加入到考勤组 - //排班制 - Schedule jrpb = scheduleservice.getScheduleSpecificAttendance(attgro.getId(),userid,str); - //固定排班 - int week = Integer.valueOf(dateToWeek(str));//4 - AttendanceWeeklySch atwek = attendanceweeklyschservice.selectZhouDetail(attgro.getId(),week);//固定周排班 - - if(attgro.getPbfs() == 1){//固定排班 - if(atwek != null){//有固定周排班 - SpecialDate rest = specialdateservice.SpecialDateSpecialDayOff(attgro.getId(), str);//查询打卡当天是否在特殊休息日期里面存在 - if(rest != null){//今天休息 Sort返回0【特殊日期--休息】 - List<AttSchedule> atts = new ArrayList<AttSchedule>(); - AttSchedule as = new AttSchedule(); - as.setId(0); - as.setSort(0);//0:表示今天为休息日 - as.setTime(0l); - as.setStarttime(0l); - as.setEndtime(0l); - atts.add(as); - attcar.setAttsch(atts); - }else{//今天上班 - ShiftManagement bcz = shiftmanagementservice.selectByPrimaryKey(atwek.getBcid()); - if(bcz != null){ - Getshiftinformationbatch(bcz,attcar,str); - } - } - }else{ - //必须打卡 - SpecialDate tsri = specialdateservice.SpecialDateTroubleshooting(attgro.getId(), str);//判断特殊日期 - if(tsri != null){ - ShiftManagement tsrq = shiftmanagementservice.selectByPrimaryKey(tsri.getBcid()); - if(tsrq!=null){ - Getshiftinformationbatch(tsrq,attcar,str); - } - }else{ - //休息 - List<AttSchedule> atts = new ArrayList<AttSchedule>(); - AttSchedule as = new AttSchedule(); - as.setId(0); - as.setSort(0);//0:表示今天为休息日 - as.setTime(0l); - as.setStarttime(0l); - as.setEndtime(0l); - atts.add(as); - attcar.setAttsch(atts); - } - } - - }else if(attgro.getPbfs() == 2){//自由排班 - - //未排班时,员工可选择班次打卡 - if(attgro.getIsXzbcdk() == 1){ - attcar.setOptscheduling(true); - }else{ - attcar.setOptscheduling(false); - } - - // Schedule jrpb = scheduleservice.getScheduleSpecificAttendance(attgro.getId(),userid,str); - if(jrpb != null){ - List<AttSchedule> atts = new ArrayList<AttSchedule>(); - if(jrpb.getBcid() != 0){//有班次时("Bcid"不为0时) - if(jrpb.getSxbcs() == 1 || jrpb.getSxbcs() == 2 || jrpb.getSxbcs() == 3){//1次上下班 - for(int o=0;o<2;o++){ - if(o==0){ - AttSchedule as = new AttSchedule(); - as.setId(jrpb.getBcid()); - as.setSort(1); - as.setTime(Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getSbdk1(),2)+":00"))); - as.setStarttime(("").equals(jrpb.getSbqjks1())? 0 :Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getSbqjks1(),2)+":00"))); - as.setEndtime(("").equals(jrpb.getSbqjjs1()) ? 0 : Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getSbqjjs1(),2)+":00"))); - atts.add(as); - }else{ - AttSchedule as = new AttSchedule(); - as.setId(jrpb.getBcid()); - as.setSort(2); - as.setTime(Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getXbdk1(),2)+":00"))); - as.setStarttime(("").equals(jrpb.getXbqjks1()) ? 0 : Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getXbqjks1(),2)+":00"))); - as.setEndtime(("").equals(jrpb.getXbqjjs1()) ? 0 : Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getXbqjjs1(),2)+":00"))); - atts.add(as); - } - } - attcar.setAttsch(atts); - } - if(jrpb.getSxbcs() == 2 || jrpb.getSxbcs() == 3){//2次上下班 - for(int o=0;o<2;o++){ - if(o==0){ - AttSchedule as = new AttSchedule(); - as.setId(jrpb.getBcid()); - as.setSort(3); - as.setTime(Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getSbdk2(),2)+":00"))); - as.setStarttime(("").equals(jrpb.getSbqjks2()) ? 0 : Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getSbqjks2(),2)+":00"))); - as.setEndtime(("").equals(jrpb.getSbqjjs2()) ? 0 : Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getSbqjjs2(),2)+":00"))); - atts.add(as); - }else{ - AttSchedule as = new AttSchedule(); - as.setId(jrpb.getBcid()); - as.setSort(4); - as.setTime(Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getXbdk2(),2)+":00"))); - as.setStarttime(("").equals(jrpb.getXbqjks2()) ? 0 : Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getXbqjks2(),2)+":00"))); - as.setEndtime(("").equals(jrpb.getXbqjjs2()) ? 0 : Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getXbqjjs2(),2)+":00"))); - atts.add(as); - } - } - attcar.setAttsch(atts); - } - if(jrpb.getSxbcs() == 3){//3次上下班 - for(int o=0;o<2;o++){ - if(o==0){ - AttSchedule as = new AttSchedule(); - as.setId(jrpb.getBcid()); - as.setSort(5); - as.setTime(Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getSbdk3(),2)+":00"))); - as.setStarttime(("").equals(jrpb.getSbqjks3()) ? 0 : Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getSbqjks3(),2)+":00"))); - as.setEndtime(("").equals(jrpb.getSbqjjs3()) ? 0 : Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getSbqjjs3(),2)+":00"))); - atts.add(as); - }else{ - AttSchedule as = new AttSchedule(); - as.setId(jrpb.getBcid()); - as.setSort(6); - as.setTime(Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getXbdk3(),2)+":00"))); - as.setStarttime(("").equals(jrpb.getXbqjks3()) ? 0 : Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getXbqjks3(),2)+":00"))); - as.setEndtime(("").equals(jrpb.getXbqjjs3()) ? 0 : Long.valueOf(dateToStamp(str+" "+dealDateFormat(jrpb.getXbqjjs3(),2)+":00"))); - atts.add(as); - } - } - attcar.setAttsch(atts); - } - }else{//当天排班为休息 - List<AttSchedule> atts1 = new ArrayList<AttSchedule>(); - AttSchedule as = new AttSchedule(); - as.setId(0); - as.setSort(0);//0:表示今天为休息日 - as.setTime(0l); - as.setStarttime(0l); - as.setEndtime(0l); - atts1.add(as); - attcar.setAttsch(atts1); - } - } - - }else{//自由工时 - //int week = Integer.valueOf(dateToWeek(str));//4 - - AttendanceWeeklySch wekz = attendanceweeklyschservice.WeeklyFreeRoster(attgro.getId(),week); - if(wekz != null){// - String dada = str+" "+attgro.getKqkssjTime()+":00"; - attcar.setStapclotime(Long.valueOf(dateToStamp(dada))); - } - - if(!("").equals(attgro.getJbzdsc())){ - attcar.setCanpunchworkdate(Double.valueOf(attgro.getJbzdsc()));//上班打卡后多久大下班卡 - } - - - } - if(jrpb != null || atwek != null){ - ShiftManagement shif = null; - if(attgro.getPbfs() == 1){ - shif = shiftmanagementservice.selectByPrimaryKey(atwek.getBcid()); - }else if(attgro.getPbfs() == 2){ - shif = shiftmanagementservice.selectByPrimaryKey(jrpb.getBcid()); - } - - if(shif != null){ - if(shif.getIsXbdk() == 1){ - attcar.setNoclockout(true);// 下班不用打卡 - }else{ - attcar.setNoclockout(false);// 下班不用打卡 - } - attcar.setAllowlate(shif.getYxcdfzs());// 允许迟到分钟数 - attcar.setSeriouslate(shif.getYzcdfzs());// 严重迟到分钟数 - attcar.setAbsenteeismlate(shif.getKgcdfzs());// 旷工迟到分钟数 - if(shif.getIsWzwd() == 1){ - attcar.setIslatelate(true);// 晚走晚到 - List<AttLateLate> atwzwd = new ArrayList<AttLateLate>(); - int p = 0; - if(!("").equals(shif.getXbwz1()) && !("").equals(shif.getSbwd1())){p = 2;} - if(!("").equals(shif.getXbwz1()) && !("").equals(shif.getSbwd1()) && !("").equals(shif.getXbwz2()) && !("").equals(shif.getSbwd2())){p = 4;} - if(!("").equals(shif.getXbwz1()) && !("").equals(shif.getSbwd1()) && !("").equals(shif.getXbwz2()) && !("").equals(shif.getSbwd2()) && !("").equals(shif.getXbwz3()) && !("").equals(shif.getSbwd3())){p = 6;} - AttLateLate ala = new AttLateLate(); - ala.setLatewalk(shif.getXbwz1()); - ala.setArrivelate(shif.getSbwd1()); - atwzwd.add(ala); - if(p == 4 || p == 6){ - AttLateLate alat = new AttLateLate(); - alat.setLatewalk(shif.getXbwz2()); - alat.setArrivelate(shif.getSbwd2()); - atwzwd.add(alat); - } - if(p == 6){ - AttLateLate alas = new AttLateLate(); - alas.setLatewalk(shif.getXbwz3()); - alas.setArrivelate(shif.getSbwd3()); - atwzwd.add(alas); - } - attcar.setAttlat(atwzwd); - }else{ - attcar.setIslatelate(false);// 晚走晚到 - } - } - } - - attcar.setAttgrouptype(attgro.getPbfs());//1:固定排班;2:自由排班;3:自由工时 - - }else{ - attcar.setAttgrouptype(0);//1:固定排班;2:自由排班;3:自由工时 - } - - return attcar; - - } - - - /**********************/ - /**********************/ /** * 获取报表汇总 */ 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 6de3b52..ba968f2 100644 --- a/src/main/java/cn/timer/api/controller/kqgl/TimeCardController.java +++ b/src/main/java/cn/timer/api/controller/kqgl/TimeCardController.java @@ -7,6 +7,7 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.Date; import java.util.List; +import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpEntity; @@ -40,6 +41,7 @@ import cn.timer.api.bean.kqgl.AttendanceMachine; import cn.timer.api.bean.kqgl.PunchCardDetails; import cn.timer.api.bean.kqgl.PunchRecord; import cn.timer.api.bean.kqgl.UserAttendanceRel; +import cn.timer.api.bean.kqgl.UserEquiRelation; import cn.timer.api.bean.kqmk.KqglAssOvertimeVice; import cn.timer.api.bean.kqmk.KqglAssoBcsz; import cn.timer.api.bean.kqmk.KqglAssoDkdz; @@ -86,6 +88,7 @@ import cn.timer.api.dao.kqmk.KqglAssoYhkqzMapper; import cn.timer.api.dao.kqmk.KqglAssoYhsbMapper; import cn.timer.api.dao.kqmk.KqglAssoZhoupaibanMapper; import cn.timer.api.dao.kqmk.KqglMainKqzMapper; +import cn.timer.api.dto.kqgl.AttemacDto; import cn.timer.api.dto.kqmk.AttSchedulingDto; import cn.timer.api.dto.kqmk.AttendanceAssistantDto; import cn.timer.api.dto.kqmk.AttqueryCriteriaDto; @@ -467,7 +470,6 @@ public class TimeCardController { @GetMapping(value="/synchrotime/{code}") @ApiOperation(value = "考勤机一键同步", httpMethod = "GET", notes = "接口发布说明") - @ApiOperationSupport(order = 54) public Result<Object> SynchronizationTime(@CurrentUser UserBean userBean,@PathVariable("code") String code) { JSONObject vResultJson = new JSONObject(); @@ -490,6 +492,80 @@ public class TimeCardController { } /** + * 移除考勤机管理员 + */ + @PostMapping(value = "/removeadministrator/{kqjid}/{id}") + @ApiOperation(value = "移除考勤机管理员", httpMethod = "POST", notes = "接口发布说明") + public Result<Object> RemoveAdministrator(@PathVariable int kqjid,@PathVariable int id, @RequestBody Map<String,String> mmd) { + String[] xgyh = mmd.get("a").split(","); + if(xgyh.length > 0){ + KqglAssoKqj kqj = KqglAssoKqj.builder().id(kqjid).build().selectById();//查询考勤机“序列号” + for(int a=0;a<xgyh.length;a++){ + + JSONObject vResultJson = new JSONObject(); + vResultJson.put("devId", kqj.getCode()); + vResultJson.put("userId", xgyh[a]); + vResultJson.put("privilege", 1); + String sFinal = vResultJson.toString(); + + String url = StaticVariable.mac_command+"/addUserPrivilege"; + HttpHeaders headers = new HttpHeaders(); + MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); + params.add("json", sFinal); + RestTemplate restTemplate = new RestTemplate(); + HttpEntity httpEntity = new HttpEntity(params, headers); + try { + ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class); + } catch (RestClientException e) { + System.err.println("提示:考勤机服务出错"); + return ResultUtil.success("失败"); + } + KqglAssoYhsb.builder().id(id).isGly(0).build().updateById(); + } + } + return ResultUtil.success("成功"); + } + + @PostMapping(value = "/modifyauthority/{kqjid}/{id}") + @ApiOperation(value = "添加考勤机管理员", httpMethod = "POST", notes = "接口发布说明") + public Result<Object> ModifyAuthority(@CurrentUser UserBean userBean,@PathVariable int kqjid,@PathVariable int id, @RequestBody Map<String,String> mmd) { + String[] xgyh = mmd.get("a").split(","); + if(xgyh.length > 0){ + KqglAssoKqj kqj = KqglAssoKqj.builder().id(kqjid).build().selectById();//查询考勤机“序列号” + + for(int a=0;a<xgyh.length;a++){ + + JSONObject vResultJson = new JSONObject(); + vResultJson.put("devId", kqj.getCode()); + vResultJson.put("userId", xgyh[a]); + vResultJson.put("privilege", 2); + String sFinal = vResultJson.toString(); + + String url = StaticVariable.mac_command+"/addUserPrivilege"; + HttpHeaders headers = new HttpHeaders(); + MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); + params.add("json", sFinal); + RestTemplate restTemplate = new RestTemplate(); + HttpEntity httpEntity = new HttpEntity(params, headers); + try { + ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class); + } catch (RestClientException e) { + System.err.println("提示:考勤机服务出错"); + return ResultUtil.success("失败"); + } + + UserEquiRelation kqjry = new UserEquiRelation(); + kqjry.setId(id); + kqjry.setIsGly(1); + userequirelationmapper.updateByPrimaryKeySelective(kqjry); + } + } + return ResultUtil.success("成功"); + + } + + + /** * 新增考勤机 */ @PostMapping(value = "/Attendance_machine") @@ -499,7 +575,29 @@ public class TimeCardController { kqglassokqj.setLuryid(userBean.getEmpNum()); kqglassokqj.setLusjTime(new Date().getTime()); kqglassokqj.setQyid(userBean.getOrgCode()); - return kqglassokqj.insert() ? ResultUtil.success("操作成功!") : ResultUtil.error("操作失败!"); + + if(!kqglassokqj.insert()) + return ResultUtil.error("操作失败--新增考勤机"); + + JSONObject vResultJson = new JSONObject(); + vResultJson.put("devId", kqglassokqj.getCode()); + vResultJson.put("orgCode", userBean.getOrgCode()); + String sFinal = vResultJson.toString(); + + String url = StaticVariable.mac_command+"/addDev"; + HttpHeaders headers = new HttpHeaders(); + MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); + params.add("json", sFinal); + RestTemplate restTemplate = new RestTemplate(); + HttpEntity httpEntity = new HttpEntity(params, headers); + try { + ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class); + } catch (RestClientException e) { + System.err.println("提示:考勤机服务出错"); + return ResultUtil.success("失败"); + } + + return ResultUtil.success("操作成功!"); } /** @@ -1754,7 +1852,6 @@ public class TimeCardController { return ResultUtil.data(pageAs, listAs, "操作成功!"); } - /**************************/ /** * 查询列表-加班补偿方式 -- libgit2 0.26.0