131 lines
5.3 KiB
Java
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));
|
|
}
|
|
}
|