package com.xiaopeng.maintenance.controller;
|
|
|
import com.xiaopeng.api.model.account.SysUser;import com.xiaopeng.api.model.maintenance.XpErrorType;
|
import com.xiaopeng.api.vo.account.LoginUser;import com.xiaopeng.common.core.domain.R;
|
import com.xiaopeng.common.core.web.page.PageInfo;
|
import com.xiaopeng.common.log.annotation.AdminOperationLog;
|
import com.xiaopeng.common.log.enums.AdminBusinessType;
|
import com.xiaopeng.common.log.enums.AdminOperationType;
|
import com.xiaopeng.common.security.service.TokenService;
|
import com.xiaopeng.common.security.utils.SecurityUtils;
|
import com.xiaopeng.maintenance.dto.SchedulingDetailDto;
|
import com.xiaopeng.maintenance.dto.ShiftAttendanceDTO;
|
import com.xiaopeng.maintenance.service.IXpSchedulingDetailService;
|
import com.xiaopeng.maintenance.vo.SaveSchedulingVo;
|
import com.xiaopeng.maintenance.vo.SchedulingDetailVo;
|
import com.xiaopeng.maintenance.vo.ShiftAttendanceVO;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.util.List;
|
import com.xiaopeng.common.log.annotation.AdminOperationLog;
|
import com.xiaopeng.common.log.enums.AdminBusinessType;
|
import com.xiaopeng.common.log.enums.AdminOperationType;
|
|
/**
|
* <p>
|
* 排班明细 前端控制器
|
* </p>
|
*
|
* @author xiaochen
|
* @since 2026-02-06
|
*/
|
@Api(tags = "排班明细")
|
@RestController
|
@RequestMapping("")
|
public class XpSchedulingDetailController {
|
|
@Resource
|
private IXpSchedulingDetailService xpSchedulingDetailService;
|
|
@Resource
|
private TokenService tokenService;
|
|
@ApiOperation(value = "查询个人排班与考勤信息", response = XpErrorType.class, tags = "运维APP-排班与考勤")
|
@PostMapping("/maintenance-app/api/v1/scheduling/shiftAttendance")
|
public R<ShiftAttendanceVO> shiftAttendance(@RequestBody ShiftAttendanceDTO dto) {
|
Long id = tokenService.getLoginOperationUser().getId();
|
dto.setOperationsUserId(id);
|
return R.ok(xpSchedulingDetailService.shiftAttendance(dto));
|
}
|
|
|
@ApiOperation(value = "排班考勤-排班计划管理-查询列表", response = XpErrorType.class, tags = "管理后台-运维执行")
|
@PostMapping("/api/v1/scheduling/pageList")
|
public R<PageInfo<SchedulingDetailDto>> pageList(@RequestBody SchedulingDetailVo query){
|
PageInfo<SchedulingDetailDto> pageInfo = xpSchedulingDetailService.pageList(query);
|
return R.ok(pageInfo);
|
}
|
|
|
@ApiOperation(value = "排班考勤-排班计划管理-保存排班数据", response = XpErrorType.class, tags = "管理后台-运维执行")
|
@PostMapping("/api/v1/scheduling/saveSchedulingDetail")
|
@AdminOperationLog(
|
businessType = AdminBusinessType.SCHEDULING_MANAGEMENT,
|
operationType = AdminOperationType.EDIT,
|
contentExpression = "'保存排班数据,month=' + #p0.month",
|
appendRequestData = false
|
)
|
public R<?> saveSchedulingDetail(@RequestBody SaveSchedulingVo vo){
|
SysUser sysUser = tokenService.getLoginUser().getSysUser();
|
return xpSchedulingDetailService.saveSchedulingDetail(vo, sysUser.getId());
|
}
|
|
|
|
@ApiOperation(value = "排班考勤-排班计划管理-导出排班数据", response = XpErrorType.class, tags = "管理后台-运维执行")
|
@GetMapping("/api/v1/scheduling/exportExcel")
|
@AdminOperationLog(
|
businessType = AdminBusinessType.SCHEDULING_MANAGEMENT,
|
operationType = AdminOperationType.EXPORT,
|
contentExpression = "'导出排班数据,month=' + #p0",
|
appendRequestData = false
|
)
|
public void exportExcel(@RequestParam("month") String month, HttpServletResponse response) {
|
xpSchedulingDetailService.exportExcel(month, response);
|
}
|
}
|