evo-Financial-pc/evo-admin/src/main/java/com/evo/common/controller/TestController.java

302 lines
14 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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();
}
}
}