package com.dy.pmsProduct.schedule;
|
|
import cn.hutool.json.JSONObject;
|
import com.alibaba.excel.EasyExcel;
|
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.pojoBa.BaUser;
|
import com.dy.pmsGlobal.pojoPr.PrSchedule;
|
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.validation.Valid;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.collections4.CollectionUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.io.IOException;
|
import java.net.URLEncoder;
|
import java.nio.charset.StandardCharsets;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 排班
|
*/
|
@Slf4j
|
@RestController
|
@RequestMapping(path="schedule")
|
public class ScheduleCtrl {
|
private String fileName = "排班信息" ;
|
private String sheetName = "排班信息" ;
|
private ScheduleSv sv;
|
@Autowired
|
public void setScheduleSv(ScheduleSv scheduleSv) {
|
this.sv = scheduleSv;
|
}
|
|
@PostMapping(path="save")
|
@SsoPowerAop(power = "10200009")
|
@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 = "10200009")
|
@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 = "10200008")
|
@Log("查询任务计划列表")
|
public BaseResponse<List<JSONObject>> selectPlan(@RequestBody QueryVo vo){
|
List<JSONObject> array = sv.selectPlan(vo) ;
|
return BaseResponseUtils.buildSuccess(array);
|
}
|
/**
|
* 根据ID查询
|
* @return
|
*/
|
@GetMapping(path="one")
|
@SsoPowerAop(power = "10200008")
|
@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 = "10200008")
|
@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);
|
}
|
/**
|
* 根据ID查询
|
* @return
|
*/
|
@GetMapping(path="getUserList")
|
@SsoPowerAop(power = "10200008")
|
@Log("查询系统中操作人员信息")
|
public BaseResponse<List<BaUser>> getUserList(){
|
List<BaUser> userList = sv.selectById();
|
return BaseResponseUtils.buildSuccess(userList);
|
}
|
|
|
@PostMapping(path="export")
|
@SsoPowerAop(power = "10200009")
|
@Log("导出排班")
|
public void exportSchedule(@RequestBody QueryVo queryVo, HttpServletResponse response) throws IOException {
|
List<ExcelVo> list = new ArrayList<>();
|
|
List<PrSchedule> schList = sv.selectAll(queryVo);
|
if (CollectionUtils.isNotEmpty(schList)) {
|
schList.forEach(sch -> {
|
if (CollectionUtils.isNotEmpty(sch.relList)) {
|
sch.relList.forEach(rel -> {
|
ExcelVo vo = new ExcelVo();
|
vo.id = sch.id.toString();
|
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);
|
});
|
}
|
});
|
}
|
|
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
response.setCharacterEncoding("utf-8");
|
fileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8).replaceAll("\\+", "%20");
|
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
|
EasyExcel.write(response.getOutputStream(), list.get(0).getClass()).sheet(sheetName)
|
.registerWriteHandler(new CustomCellWriteHandler()).doWrite(list);
|
}
|
|
/**
|
* 查询所有,触屏端使用不验证token
|
* @param queryVo
|
* @return
|
*/
|
@PostMapping(path="selectAll")
|
public BaseResponse<List<PrSchedule>> selectAll(@RequestBody QueryVo queryVo) {
|
return BaseResponseUtils.buildSuccess(sv.selectAll(queryVo));
|
}
|
}
|