|  |  | 
 |  |  | package com.dy.pmsProduct.schedule; | 
 |  |  |  | 
 |  |  | import cn.hutool.json.JSONObject; | 
 |  |  | import com.alibaba.excel.EasyExcel; | 
 |  |  | 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.pojoBa.BaUser; | 
 |  |  | 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.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; | 
 |  |  | import java.util.Map; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * 排班 | 
 |  |  | 
 |  |  | @RestController | 
 |  |  | @RequestMapping(path="schedule") | 
 |  |  | public class ScheduleCtrl { | 
 |  |  |  | 
 |  |  |     private String fileName = "排班信息" ; | 
 |  |  |     private String sheetName = "排班信息" ; | 
 |  |  |     private ScheduleSv sv; | 
 |  |  |     @Autowired | 
 |  |  |     public void setScheduleSv(ScheduleSv scheduleSv) { | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PostMapping(path="save") | 
 |  |  |     @SsoPowerAop(power = "-1") | 
 |  |  |     @SsoPowerAop(power = "10200009") | 
 |  |  |     @Log("保存排班") | 
 |  |  |     public BaseResponse<Boolean> save(@RequestBody @Valid PrSchedule schedule){ | 
 |  |  |         int count = sv.save(schedule); | 
 |  |  | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @PostMapping(path="update") | 
 |  |  |     @SsoPowerAop(power = "-1") | 
 |  |  |     @SsoPowerAop(power = "10200009") | 
 |  |  |     @Log("更新排班") | 
 |  |  |     public BaseResponse<Boolean> update(@RequestBody @Valid PrSchedule schedule){ | 
 |  |  |         int count = sv.update(schedule); | 
 |  |  | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @PostMapping(path="selectPlan") | 
 |  |  |     @SsoPowerAop(power = "-1") | 
 |  |  |     @SsoPowerAop(power = "10200008") | 
 |  |  |     @Log("查询任务计划列表") | 
 |  |  |     public BaseResponse<List<Map<String,Object>>> selectPlan(@RequestBody QueryVo vo){ | 
 |  |  |         List<Map<String,Object>> list = sv.selectPlan(vo) ; | 
 |  |  |         return BaseResponseUtils.buildSuccess(list); | 
 |  |  |     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 = "-1") | 
 |  |  |     @SsoPowerAop(power = "10200008") | 
 |  |  |     @Log("根据ID查询排班") | 
 |  |  |     public BaseResponse<PrSchedule> one(Long id){ | 
 |  |  |         PrSchedule schedule=sv.selectById(id); | 
 |  |  | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @PostMapping(path="some") | 
 |  |  |     @SsoPowerAop(power = "-1") | 
 |  |  |     @SsoPowerAop(power = "10200008") | 
 |  |  |     @Log("分页查询排班") | 
 |  |  |     public BaseResponse<QueryResultVo<List<PrSchedule>>> some(@RequestBody com.dy.pmsProduct.schedule.QueryVo vo){ | 
 |  |  |     public BaseResponse<QueryResultVo<List<PrSchedule>>> some(@RequestBody 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); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private String fileName = "排班信息" ; | 
 |  |  |     private String sheetName = "排班信息" ; | 
 |  |  |  | 
 |  |  |     @PostMapping(path="export") | 
 |  |  |     @SsoPowerAop(power = "-1") | 
 |  |  |     @SsoPowerAop(power = "10200009") | 
 |  |  |     @Log("导出排班") | 
 |  |  |     public void exportSchedule(@RequestBody QueryVo queryVo, HttpServletResponse response){ | 
 |  |  |         List<Converter> list = new ArrayList<>() ; | 
 |  |  |     public void exportSchedule(@RequestBody QueryVo queryVo, HttpServletResponse response) throws IOException { | 
 |  |  |         List<ExcelVo> list = new ArrayList<>(); | 
 |  |  |  | 
 |  |  |         List<PrSchedule> schList = sv.selectAll(queryVo); | 
 |  |  |         schList.forEach(sch -> { | 
 |  |  |             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); | 
 |  |  |         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); | 
 |  |  |                     }); | 
 |  |  |                 } | 
 |  |  |             }); | 
 |  |  |         }); | 
 |  |  |  | 
 |  |  |         try{ | 
 |  |  |             response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); | 
 |  |  |             response.setCharacterEncoding("utf-8"); | 
 |  |  |             fileName = URLEncoder.encode(fileName, "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); | 
 |  |  |         }catch (Exception e){ | 
 |  |  |             log.error("导出排班信息异常", e); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         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)); | 
 |  |  |     } | 
 |  |  | } |