evo-Financial-pc/evo-admin/src/main/java/com/evo/attendance/controller/RzAttendanceStatisticalController.java
2025-09-28 13:24:31 +08:00

131 lines
5.3 KiB
Java

package com.evo.attendance.controller;
import com.evo.common.annotation.Log;
import com.evo.common.annotation.RepeatSubmit;
import com.evo.common.constant.HttpStatus;
import com.evo.common.core.controller.BaseController;
import com.evo.common.core.domain.AjaxResult;
import com.evo.common.core.page.TableDataInfo;
import com.evo.common.enums.BusinessType;
import com.evo.common.utils.ParamUtils;
import com.evo.common.utils.StringUtils;
import com.evo.common.utils.poi.ExcelUtil;
import com.evo.attendance.domain.RzAttendanceStatistical;
import com.evo.attendance.service.IRzAttendanceStatisticalService;
import com.evo.finance.service.IRzSalaryStatisticsService;
import com.evo.system.service.ISysStatisticalOperationLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.List;
/**
* 考勤统计Controller
*
* @author chenyj
* @date 2024-09-05
*/
@RestController
@RequestMapping("/attendance/statistical")
public class RzAttendanceStatisticalController extends BaseController
{
@Resource
private IRzAttendanceStatisticalService rzAttendanceStatisticalService;
@Autowired
private IRzSalaryStatisticsService rzSalaryStatisticsService;
@Resource
private ISysStatisticalOperationLogService sysStatisticalOperationLogService;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
/**
* 查询考勤统计列表
*/
@PreAuthorize("@ss.hasPermi('attendance:statistical:list')")
@GetMapping("/list")
public TableDataInfo list(RzAttendanceStatistical rzAttendanceStatistical)
{
startPage();
List<RzAttendanceStatistical> list = rzAttendanceStatisticalService.selectRzAttendanceStatisticalList(rzAttendanceStatistical);
List<String> createMonth = rzSalaryStatisticsService.selectMonthList();
list.stream().forEach(data ->{
data.setAllowAdjustment(createMonth.contains(sdf.format(data.getMonth())));
});
return getDataTable(list);
}
/**
* 导出考勤统计列表
*/
@PreAuthorize("@ss.hasPermi('attendance:statistical:export')")
@Log(title = "考勤统计", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, RzAttendanceStatistical rzAttendanceStatistical)
{
List<RzAttendanceStatistical> list = rzAttendanceStatisticalService.selectRzAttendanceStatisticalList(rzAttendanceStatistical);
ExcelUtil<RzAttendanceStatistical> util = new ExcelUtil<RzAttendanceStatistical>(RzAttendanceStatistical.class);
util.exportExcel(response, list, "考勤统计数据");
}
/**
* 获取考勤统计详细信息
*/
@PreAuthorize("@ss.hasPermi('attendance:statistical:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(rzAttendanceStatisticalService.selectRzAttendanceStatisticalById(id));
}
/**
* 修改考勤统计
*/
@PreAuthorize("@ss.hasPermi('attendance:statistical:edit')")
@Log(title = "考勤统计", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody RzAttendanceStatistical rzAttendanceStatistical)
{
return toAjax(rzAttendanceStatisticalService.updateRzAttendanceStatistical(rzAttendanceStatistical));
}
/**
* 校正数据
*/
@PreAuthorize("@ss.hasPermi('attendance:statistical:correct')")
@RequestMapping(value = "correct")
@RepeatSubmit
public AjaxResult correct(@RequestBody RzAttendanceStatistical rzAttendanceStatistical)
{
if (StringUtils.isNull(rzAttendanceStatistical) || StringUtils.isNull(rzAttendanceStatistical.getMonth())) {
return AjaxResult.error("请输入校正日期!!");
}
AjaxResult result = rzAttendanceStatisticalService.autoCalculateTheDayBeforeAttendance(rzAttendanceStatistical.getMonth());
//如果操作记录成功, 则打开统计的操作记录, 不写在service的原因是有定时器, 每天在执行
if(Integer.parseInt(String.valueOf(result.get(AjaxResult.CODE_TAG))) == HttpStatus.SUCCESS){
ParamUtils.updateLogOperation(true);
}
return result;
}
@PreAuthorize("@ss.hasPermi('attendance:statistical:import')")
@PostMapping("/importData")
public AjaxResult importData(MultipartFile file) throws Exception
{
ExcelUtil<RzAttendanceStatistical> util = new ExcelUtil<RzAttendanceStatistical>(RzAttendanceStatistical.class);
List<RzAttendanceStatistical> attList = util.importExcel(file.getInputStream());
return rzAttendanceStatisticalService.importRzAttendanceStatistical(attList);
}
/**
* 获取考勤统计的操作记录
*/
@PreAuthorize("@ss.hasPermi('attendance:statistical:oper')")
@GetMapping(value = "/oper/{id}")
public AjaxResult getOper(@PathVariable("id") Long id)
{
return success(sysStatisticalOperationLogService.getOperationByBusinessId(id, RzAttendanceStatistical.class));
}
}