302 lines
14 KiB
Java
302 lines
14 KiB
Java
package com.evo.common.controller;
|
||
|
||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||
import com.evo.attendance.service.IRzAttendanceService;
|
||
import com.evo.attendance.service.IRzAttendanceStatisticalService;
|
||
import com.evo.attendance.service.RzAttendanceDetailService;
|
||
import com.evo.common.constant.Constants;
|
||
import com.evo.common.core.domain.AjaxResult;
|
||
import com.evo.common.utils.Collections;
|
||
import com.evo.personnelMatters.mapper.RzOverTimeDetailMapper;
|
||
import com.evo.personnelMatters.mapper.RzOverTimeMapper;
|
||
import com.evo.restaurant.service.IRzRestaurantStatisticsService;
|
||
import com.evo.system.domain.SysStaff;
|
||
import com.evo.system.service.ISysStaffService;
|
||
import org.springframework.ui.Model;
|
||
import org.springframework.web.bind.annotation.GetMapping;
|
||
import org.springframework.web.bind.annotation.PostMapping;
|
||
import org.springframework.web.bind.annotation.RequestMapping;
|
||
import org.springframework.web.bind.annotation.RestController;
|
||
|
||
import javax.annotation.Resource;
|
||
import java.io.BufferedReader;
|
||
import java.io.File;
|
||
import java.io.FileReader;
|
||
import java.text.ParseException;
|
||
import java.text.SimpleDateFormat;
|
||
import java.util.Date;
|
||
import java.util.List;
|
||
import java.util.concurrent.atomic.AtomicReference;
|
||
import java.util.stream.Collectors;
|
||
|
||
/**
|
||
* 类
|
||
*
|
||
* @ClassName:TestController
|
||
* @date: 2025年06月04日 11:12
|
||
* @author: andy.shi
|
||
* @contact: 17330188597
|
||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||
*/
|
||
@RestController
|
||
@RequestMapping("/test")
|
||
public class TestController {
|
||
@Resource
|
||
private RzOverTimeMapper rzOverTimeMapper;
|
||
@Resource
|
||
private RzOverTimeDetailMapper rzOverTimeDetailMapper;
|
||
@Resource
|
||
private ISysStaffService sysStaffService;
|
||
@Resource
|
||
IRzAttendanceStatisticalService rzAttendanceStatisticalService;
|
||
@Resource
|
||
IRzRestaurantStatisticsService rzRestaurantStatisticsService;
|
||
|
||
@Resource
|
||
private IRzAttendanceService rzAttendanceService;
|
||
@Resource
|
||
private RzAttendanceDetailService rzAttendanceDetailService;
|
||
/**
|
||
* 清洗加班
|
||
*/
|
||
@GetMapping("/overTime")
|
||
public AjaxResult overTime(Date date) {
|
||
|
||
// rzOverTimeMapper.sele
|
||
// RzOverTimeDetail rzOverTimeDetail = rzOverTimeDetailMapper.queryRzOverTimeDetailByDateAndOverId(rzOverTime.getId(),date);
|
||
// rzOverTimeDetail.setOverTimeEnd(date);
|
||
// //计算加班时长 小时
|
||
// double minutes = (rzOverTimeDetail.getOverTimeEnd().getTime() - rzOverTimeDetail.getOverTimeStart().getTime())/1000/60;
|
||
// //计算小时, 保留2位小数
|
||
// double hours = new BigDecimal(minutes).divide(new BigDecimal(60),2,BigDecimal.ROUND_HALF_UP).doubleValue();
|
||
// //获取规则
|
||
// JSONObject deviceRules = ParamUtils.getDeviceOverTimeRules(sn);
|
||
// //获取最大加班时长
|
||
// Integer maxOverTimeHour = deviceRules.getInteger("maxHour");
|
||
// //记录加班时长
|
||
// rzOverTimeDetail.setOverTimeHours(BigDecimal.valueOf(((hours > maxOverTimeHour) ? maxOverTimeHour : hours)));
|
||
|
||
// if(rzOverTimeDetailMapper.updateRzOverTimeDetail(rzOverTimeDetail) < 1){
|
||
return AjaxResult.success();
|
||
}
|
||
|
||
|
||
|
||
@GetMapping("/message")
|
||
public String message(Model model, String code) {
|
||
|
||
System.out.println(code);
|
||
// String res = AccessTokenUtil.accessToken2("wx268e32962db19f5f", "84a6065165ec82862c5e03a010a6dc6c", code);
|
||
// System.out.println(res);
|
||
// JSONObject obj = JSONObject.parseObject(res);
|
||
// String openid = obj.getString("openid");
|
||
SysStaff user = new SysStaff();
|
||
user.setOpenid(code);
|
||
model.addAttribute("user", user);
|
||
//model.addAttribute("openid", openid);
|
||
// ErrorData templateData = new ErrorData();
|
||
//
|
||
// templateData.setThing1((JSONObject)JSON.toJSON(Collections.asMap("value", "研发部")));
|
||
// templateData.setThing2((JSONObject)JSON.toJSON(Collections.asMap("value", "张三")));//动态跟换车牌号
|
||
// templateData.setConst4((JSONObject)JSON.toJSON(Collections.asMap("value", "昨天下班未打卡")));//动态跟换车牌号
|
||
// templateData.setTime6((JSONObject)JSON.toJSON(Collections.asMap("value", DateUtil.format(new Date(), "yyyy年MM月dd日"))));//动态跟换车牌号
|
||
//
|
||
// MessageTemplateSendData sendData = new MessageTemplateSendData();
|
||
// sendData.setTouser(openid);
|
||
// sendData.setTemplate_id("z9sy-38K-iC5MAWHbxcxwg1c-9oNTFWeCOoy6B6zdKY");
|
||
// sendData.setData((JSONObject)JSON.toJSON(templateData));
|
||
// TemplateMessageUtil.templateMessageSend(GZHAccessTokenService.gzhAccessToken(), sendData);
|
||
|
||
return "user_info.html";
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
* 清洗加班
|
||
*/
|
||
@PostMapping("/attendanceStatistical")
|
||
public AjaxResult attendanceStatistical(String userIds, String date) throws ParseException {
|
||
Date d = new SimpleDateFormat("yyyy-MM-dd").parse(date);
|
||
for (SysStaff sysStaff : sysStaffService.list(new LambdaQueryWrapper<SysStaff>().in(SysStaff::getUserId, Collections.asList(userIds.split(","))))){
|
||
rzAttendanceStatisticalService.createRzAttendance(sysStaff, null, d);
|
||
rzRestaurantStatisticsService.createRestaurantStatistics(sysStaff, d);
|
||
}
|
||
|
||
return AjaxResult.success();
|
||
}
|
||
|
||
|
||
@PostMapping("/qxdk")
|
||
public AjaxResult qxdk() throws ParseException {
|
||
// Map<Long, String> snMap = sysStaffService.list(new LambdaQueryWrapper<SysStaff>().eq(SysStaff::getDelFlag, Constants.DELETE_FLAG_0)).stream().filter(data->{ return (data.getUserId() != null && StringUtils.isNotEmpty(data.getTimeClock()));
|
||
// }).collect(Collectors.toMap(SysStaff::getUserId, SysStaff::getTimeClock));
|
||
//
|
||
//
|
||
// Date d = new SimpleDateFormat("yyyy-MM-dd").parse("2025-07-08");
|
||
// Map<String, Integer> timeMap = Collections.asMap("上班卡(倒班12时制)",12,"上班卡(单班制)",9,"上班卡(倒班8时制)",9);
|
||
// List<RzAttendance> list = rzAttendanceService.list(new LambdaQueryWrapper<RzAttendance>()
|
||
// .eq(RzAttendance::getDelFlag, Constants.DELETE_FLAG_0)
|
||
// .apply(" date_format(`attendance_date`,'%Y%m%d')=date_format({0},'%Y%m%d') ",d)
|
||
// .apply(" work_start_time is not null ")
|
||
// ).stream().map(data ->{
|
||
// data.setWorkEndTime(DateUtils.addHours(data.getWorkStartTime(), timeMap.get(data.getRules())));
|
||
// return data;
|
||
// }).collect(Collectors.toList());
|
||
//
|
||
// if(Collections.isNotEmpty(list)){
|
||
// //更新所有的卡时间
|
||
// rzAttendanceService.updateBatchById(list);
|
||
// for (RzAttendance rzAttendance : list){
|
||
// List<RzAttendanceDetail> sbList = rzAttendanceDetailService.list(new LambdaQueryWrapper<RzAttendanceDetail>().eq(RzAttendanceDetail::getDelFlag, Constants.DELETE_FLAG_0).eq(RzAttendanceDetail::getAttendanceId, rzAttendance.getId()).like(RzAttendanceDetail::getButtonType,"%上班%"));
|
||
// if(Collections.isEmpty(sbList)){
|
||
// rzAttendanceDetailService.addOrUpdateDetail(rzAttendance, rzAttendance.getRules(), snMap.get(rzAttendance.getStaffId()), rzAttendance.getWorkStartTime(), "系统清洗");
|
||
// }else if(sbList.size() > 1){
|
||
// sbList.remove(0);
|
||
// rzAttendanceDetailService.removeByIds(sbList);
|
||
// }
|
||
// List<RzAttendanceDetail> xbList = rzAttendanceDetailService.list(new LambdaQueryWrapper<RzAttendanceDetail>().eq(RzAttendanceDetail::getDelFlag, Constants.DELETE_FLAG_0).eq(RzAttendanceDetail::getAttendanceId, rzAttendance.getId()).like(RzAttendanceDetail::getButtonType,"%下班%"));
|
||
// if(ObjectUtils.isEmpty(xbList)){
|
||
// rzAttendanceDetailService.addOrUpdateDetail(rzAttendance, "下班卡", snMap.get(rzAttendance.getStaffId()), rzAttendance.getWorkEndTime(), "系统清洗");
|
||
// }else if(xbList.size() > 1){
|
||
// xbList.remove(0);
|
||
// rzAttendanceDetailService.removeByIds(xbList);
|
||
// }
|
||
// }
|
||
// }
|
||
//
|
||
//
|
||
//
|
||
// list = rzAttendanceService.list(new LambdaQueryWrapper<RzAttendance>()
|
||
// .eq(RzAttendance::getDelFlag, Constants.DELETE_FLAG_0)
|
||
// .apply(" date_format(`attendance_date`,'%Y%m%d')=date_format({0},'%Y%m%d') ",new SimpleDateFormat("yyyy-MM-dd").parse("2025-07-09"))
|
||
// .apply(" work_start_time is not null ")
|
||
// );
|
||
//
|
||
// if(Collections.isNotEmpty(list)){
|
||
// //更新所有的卡时间
|
||
// for (RzAttendance rzAttendance : list){
|
||
// List<RzAttendanceDetail> sbList = rzAttendanceDetailService.list(new LambdaQueryWrapper<RzAttendanceDetail>().eq(RzAttendanceDetail::getDelFlag, Constants.DELETE_FLAG_0).eq(RzAttendanceDetail::getAttendanceId, rzAttendance.getId()).like(RzAttendanceDetail::getButtonType,"%上班%"));
|
||
// if(Collections.isEmpty(sbList)){
|
||
// rzAttendanceDetailService.addOrUpdateDetail(rzAttendance, rzAttendance.getRules(), snMap.get(rzAttendance.getStaffId()), rzAttendance.getWorkStartTime(), "系统清洗");
|
||
// }else if(sbList.size() > 1){
|
||
// sbList.remove(0);
|
||
// rzAttendanceDetailService.removeByIds(sbList);
|
||
// }
|
||
// }
|
||
// }
|
||
return AjaxResult.success();
|
||
}
|
||
|
||
private String buildCode(Integer code){
|
||
if(code < 10){
|
||
return Constants.SEIZE_A_SEAT_3 + code;
|
||
}else if(code < 100){
|
||
return Constants.SEIZE_A_SEAT_2 + code;
|
||
}else if(code < 1000){
|
||
return Constants.SEIZE_A_SEAT_1 + code;
|
||
}else if(code < 10000){
|
||
return Constants.SEIZE_A_SEAT_0 + code;
|
||
}else{
|
||
return String.valueOf(code);
|
||
}
|
||
}
|
||
|
||
@PostMapping("/qxCode")
|
||
public AjaxResult qxCode() throws ParseException {
|
||
AtomicReference<Integer> code = new AtomicReference<>(6);
|
||
List<SysStaff> list = sysStaffService.list(new LambdaQueryWrapper<SysStaff>().notIn(SysStaff::getName, Collections.asList("胡景昌","张敏","胡毅鹏","李雾","尹国峰")).orderByAsc(SysStaff::getEmploymentDate)).stream().map(data ->{
|
||
data.setCode(buildCode(code.get()));
|
||
code.set(code.get() +1);
|
||
return data;
|
||
}).collect(Collectors.toList());
|
||
|
||
sysStaffService.updateBatchById(list,list.size());
|
||
|
||
return AjaxResult.success();
|
||
}
|
||
|
||
|
||
|
||
|
||
@PostMapping("/jb")
|
||
public AjaxResult jb() throws Exception{
|
||
|
||
// BufferedReader reader = new BufferedReader(new FileReader(new File("D:\\andy\\文档\\考勤\\7月8号加班数据清洗.txt")));
|
||
// String line = reader.readLine();
|
||
// while (line != null) {
|
||
// String[] info = line.split("-");
|
||
// RzAttendanceDetail detail = rzAttendanceDetailService.getOne(new LambdaQueryWrapper<RzAttendanceDetail>()
|
||
// .eq(RzAttendanceDetail::getDelFlag, Constants.DELETE_FLAG_0)
|
||
// .eq(RzAttendanceDetail::getName, info[0])
|
||
// .eq(RzAttendanceDetail::getButtonType,"下班卡")
|
||
// .apply(" DATE_FORMAT(date_time,'%Y%m%d') = DATE_FORMAT({0},'%Y%m%d') ", "2025-07-08"));
|
||
//
|
||
// RzAttendance attendance= rzAttendanceService.getOne(new LambdaQueryWrapper<RzAttendance>()
|
||
// .eq(RzAttendance::getDelFlag, Constants.DELETE_FLAG_0)
|
||
// .eq(RzAttendance::getName, info[0])
|
||
// .eq(RzAttendance::getAttendanceDate, "2025-07-08")
|
||
// );
|
||
// System.out.println(info[0]);
|
||
// SysStaff sysStaff = sysStaffService.getById(detail.getStaffId());
|
||
// RzOverTime rzOverTime = rzOverTimeMapper.selectRzOverTimeByNameAndMonth(sysStaff.getUserId(),detail.getDateTime());
|
||
// if(rzOverTime == null){
|
||
// rzOverTime = new RzOverTime();
|
||
// rzOverTime.setUserId(sysStaff.getUserId());
|
||
// rzOverTime.setOverHours(new BigDecimal("0.0"));
|
||
// rzOverTime.setDeptId(sysStaff.getDeptId());
|
||
// rzOverTime.setName(sysStaff.getName());
|
||
// rzOverTime.setOverTimeMonth(detail.getDateTime());
|
||
// rzOverTimeMapper.insert(rzOverTime);
|
||
// }
|
||
//
|
||
// detail = rzAttendanceDetailService.addOrUpdateDetail(attendance, "加班卡", detail.getEquipmentCode(), com.evo.common.utils.DateUtils.addSeconds(detail.getDateTime(), 10), "数据清洗");
|
||
// RzOverTimeDetail rzOverTimeDetail = new RzOverTimeDetail();
|
||
// rzOverTimeDetail.setOverTimeId(rzOverTime.getId());
|
||
// rzOverTimeDetail.setOverTimeStart(detail.getDateTime());
|
||
// rzOverTimeDetail.setName(sysStaff.getName());
|
||
// rzOverTimeDetail.setDelFlag(Constants.DELETE_FLAG_0);
|
||
// rzOverTimeDetail.setCreateBy("admin");
|
||
// rzOverTimeDetail.setCreateTime(com.evo.common.utils.DateUtils.getNowDate());
|
||
//
|
||
// detail = rzAttendanceDetailService.addOrUpdateDetail(attendance, "下班卡", detail.getEquipmentCode(), com.evo.common.utils.DateUtils.addMinutes(detail.getDateTime(), new BigDecimal(info[1]).multiply(new BigDecimal(60)).add(new BigDecimal(30)).intValue()), "数据清洗");
|
||
// rzOverTimeDetail.setOverTimeEnd(detail.getDateTime());
|
||
// rzOverTimeDetailMapper.insert(rzOverTimeDetail);
|
||
// KqUtils.calculateOverTimeHours(rzOverTimeDetail, sysStaff.getUserId(), sysStaff.getTimeClock());
|
||
// rzOverTimeDetailMapper.updateRzOverTimeDetail(rzOverTimeDetail);
|
||
// //加班修改统计
|
||
// rzOverTime.setOverHours(rzOverTime.getOverHours().add(rzOverTimeDetail.getOverTimeHours()));
|
||
// rzOverTimeMapper.updateRzOverTime(rzOverTime);
|
||
// line = reader.readLine();
|
||
// }
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
return AjaxResult.success();
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
public static void main(String[] args) throws Exception {
|
||
|
||
BufferedReader reader = new BufferedReader(new FileReader(new File("D:\\andy\\文档\\考勤\\岗位任职部门信息.txt")));
|
||
String line = reader.readLine();
|
||
while (line != null) {
|
||
String[] configData = line.split("_");
|
||
System.out.println("update sys_dict_data set dict_value='"+line+"' where dict_value='"+configData[0]+"';\n");
|
||
line = reader.readLine();
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
}
|