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.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; /** *

* 排班明细 前端控制器 *

* * @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("/api/v1/scheduling/shiftAttendance") public R 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> pageList(@RequestBody SchedulingDetailVo query){ PageInfo 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); } }