package com.dy.pmsProduct.schedule;
|
|
import com.alibaba.excel.converters.Converter;
|
import com.dy.common.aop.SsoPowerAop;
|
import com.dy.common.webUtil.BaseResponse;
|
import com.dy.common.webUtil.BaseResponseUtils;
|
import com.dy.common.webUtil.QueryResultVo;
|
import com.dy.pmsGlobal.aop.Log;
|
import com.dy.pmsGlobal.pojoPr.PrSchedule;
|
import com.dy.pmsGlobal.util.QrCodeUtil;
|
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.validation.Valid;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 排班
|
*/
|
@Slf4j
|
@RestController
|
@RequestMapping(path="schedule")
|
public class ScheduleCtrl {
|
private static final String fileName = "排班信息" ;
|
private static final String sheetName = "排班信息" ;
|
private ScheduleSv sv;
|
@Autowired
|
public void setScheduleSv(ScheduleSv scheduleSv) {
|
this.sv = scheduleSv;
|
}
|
|
@PostMapping(path="save")
|
@SsoPowerAop(power = "-1")
|
@Log("保存排班")
|
public BaseResponse<Boolean> save(@RequestBody @Valid PrSchedule schedule){
|
int count = sv.save(schedule);
|
if (count <= 0) {
|
return BaseResponseUtils.buildFail("数据库存储失败");
|
} else {
|
return BaseResponseUtils.buildSuccess(true);
|
}
|
}
|
|
/**
|
* 更新
|
* @param schedule
|
* @return
|
*/
|
@PostMapping(path="update")
|
@SsoPowerAop(power = "-1")
|
@Log("更新排班")
|
public BaseResponse<Boolean> update(@RequestBody @Valid PrSchedule schedule){
|
int count = sv.update(schedule);
|
if (count <= 0) {
|
return BaseResponseUtils.buildFail("数据库存储失败");
|
} else {
|
return BaseResponseUtils.buildSuccess(true);
|
}
|
}
|
|
/**
|
* 查询任务计划列表
|
* @param vo
|
* @return
|
*/
|
@PostMapping(path="selectPlan")
|
@SsoPowerAop(power = "-1")
|
@Log("查询任务计划列表")
|
public BaseResponse<List<Map<String,Object>>> selectPlan(@RequestBody QueryVo vo){
|
List<Map<String,Object>> list = sv.selectPlan(vo) ;
|
return BaseResponseUtils.buildSuccess(list);
|
}
|
/**
|
* 根据ID查询
|
* @return
|
*/
|
@GetMapping(path="one")
|
@SsoPowerAop(power = "-1")
|
@Log("根据ID查询排班")
|
public BaseResponse<PrSchedule> one(Long id){
|
PrSchedule schedule=sv.selectById(id);
|
return BaseResponseUtils.buildSuccess(schedule);
|
}
|
|
/**
|
* 分页查询
|
* @param vo
|
* @return
|
*/
|
@PostMapping(path="some")
|
@SsoPowerAop(power = "-1")
|
@Log("分页查询排班")
|
public BaseResponse<QueryResultVo<List<PrSchedule>>> some(@RequestBody com.dy.pmsProduct.schedule.QueryVo vo){
|
QueryResultVo<List<PrSchedule>> list = sv.selectSome(vo) ;
|
return BaseResponseUtils.buildSuccess(list);
|
}
|
|
|
@PostMapping(path="export")
|
@SsoPowerAop(power = "-1")
|
@Log("导出排班")
|
public void exportSchedule(@RequestBody QueryVo queryVo, HttpServletResponse response){
|
List<Converter> list = new ArrayList<>() ;
|
|
List<PrSchedule> schList = sv.selectAll(queryVo);
|
// 使用并行流提高性能
|
schList.parallelStream().forEach(sch -> {
|
sch.relList.forEach(rel -> {
|
ExcelVo vo = new ExcelVo();
|
vo.userName = sch.userName;
|
vo.scheduleDate = sch.scheduleDate;
|
vo.dt = sch.dt;
|
vo.planName = rel.planName;
|
vo.nodeName = rel.nodeName;
|
vo.stationName = rel.stationName;
|
vo.workDetails = rel.workDetails;
|
list.add(vo);
|
});
|
});
|
QrCodeUtil.downloadExcel(response, fileName,sheetName,list);
|
}
|
}
|