| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338 |
- package com.railway.business.catenary.controller;
- import com.railway.business.baseinfo.service.IBaseStationService;
- import com.railway.business.catenary.domain.vo.JcebCountVo;
- import com.railway.business.catenary.domain.vo.JcebQueryVo;
- import com.railway.business.catenary.domain.vo.JcebRecordVo;
- import com.railway.business.catenary.domain.vo.JcebStationVo;
- import com.railway.business.catenary.enums.JcebTypeEnum;
- import com.railway.business.catenary.enums.SortTypeEnum;
- import com.railway.business.catenary.service.IBusJcbBlqService;
- import com.railway.business.catenary.service.IBusJcbDmcgyqService;
- import com.railway.business.catenary.service.IBusJcbFdfxjyqService;
- import com.railway.business.catenary.service.IBusJcbGlkgService;
- import com.railway.business.catenary.service.IBusJcbJcxcService;
- import com.railway.business.catenary.service.IBusJcbWjcxcService;
- import com.railway.business.catenary.service.IBusJcebFzswjfxcService;
- import com.railway.business.catenary.service.IBusJcebGjsfxService;
- import com.railway.business.catenary.service.IBusJcebJddzService;
- import com.railway.business.catenary.service.IBusJcebJyzqsjlService;
- import com.railway.business.catenary.service.IBusJcebLbjghjlService;
- import com.railway.business.catenary.service.IBusJcebQmjcjlService;
- import com.railway.business.catenary.service.IBusJcebXsjcjlService;
- import com.railway.business.catenary.util.JcebQueryUtil;
- import com.railway.common.core.controller.BaseController;
- import com.railway.common.core.domain.AjaxResult;
- import com.railway.common.core.page.TableDataInfo;
- import com.railway.common.utils.StringUtils;
- import com.railway.system.service.ISysFileService;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import java.util.ArrayList;
- import java.util.Comparator;
- import java.util.List;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.validation.annotation.Validated;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- /**
- * @author ZhaoMn
- */
- @Slf4j
- @Api(value = "rest/catenary/bus/jceb/view", tags = "检测表 - 汇总接口")
- @RestController
- @Validated
- @RequestMapping(value = "business/catenary/bus/jceb/view")
- public class BusJcebController extends BaseController {
- private final IBusJcebXsjcjlService xsjcjlService;
- private final IBusJcebQmjcjlService qmjcjlService;
- private final IBusJcebLbjghjlService lbjghjlService;
- private final IBusJcebJyzqsjlService jyzqsjlService;
- private final IBusJcebJddzService jddzService;
- private final IBusJcebGjsfxService gjsfxService;
- private final IBusJcebFzswjfxcService fzswjfxcService;
- private final IBusJcbBlqService blqService;
- private final IBusJcbDmcgyqService dmcgyqService;
- private final IBusJcbFdfxjyqService fdfxjyqService;
- private final IBusJcbGlkgService glkgService;
- private final IBusJcbJcxcService jcxcService;
- private final IBusJcbWjcxcService wjcxcService;
- private final IBaseStationService stationService;
- private final ISysFileService fileService;
- public BusJcebController(
- IBusJcebXsjcjlService xsjcjlService,
- IBusJcebQmjcjlService qmjcjlService,
- IBusJcebLbjghjlService lbjghjlService,
- IBusJcebJyzqsjlService jyzqsjlService,
- IBusJcebJddzService jddzService,
- IBusJcebGjsfxService gjsfxService,
- IBusJcebFzswjfxcService fzswjfxcService,
- IBusJcbBlqService blqService,
- IBusJcbDmcgyqService dmcgyqService,
- IBusJcbFdfxjyqService fdfxjyqService,
- IBusJcbGlkgService glkgService,
- IBusJcbJcxcService jcxcService,
- IBusJcbWjcxcService wjcxcService,
- IBaseStationService stationService,
- ISysFileService fileService) {
- this.xsjcjlService = xsjcjlService;
- this.qmjcjlService = qmjcjlService;
- this.lbjghjlService = lbjghjlService;
- this.jyzqsjlService = jyzqsjlService;
- this.jddzService = jddzService;
- this.gjsfxService = gjsfxService;
- this.fzswjfxcService = fzswjfxcService;
- this.blqService = blqService;
- this.dmcgyqService = dmcgyqService;
- this.fdfxjyqService = fdfxjyqService;
- this.glkgService = glkgService;
- this.jcxcService = jcxcService;
- this.wjcxcService = wjcxcService;
- this.stationService = stationService;
- this.fileService = fileService;
- }
- @ApiOperation(value = "筛选车间列表")
- @GetMapping(value = "listStation")
- public TableDataInfo listStation(JcebQueryVo query) {
- JcebQueryUtil.setBusJcebQuery(query);
- JcebTypeEnum jcebTypeEnum = JcebTypeEnum.ofValue(query.getJcebType());
- List<JcebStationVo> list;
- switch (jcebTypeEnum) {
- case Blq:
- list = blqService.listStation(query);
- break;
- case Dmcgyq:
- list = dmcgyqService.listStation(query);
- break;
- case Fdfxjyq:
- list = fdfxjyqService.listStation(query);
- break;
- case Glkg:
- list = glkgService.listStation(query);
- break;
- case Jcxc:
- list = jcxcService.listStation(query);
- break;
- case Wjcxc:
- list = wjcxcService.listStation(query);
- break;
- default:
- list = stationService.listStation(query);
- break;
- }
- return getDataTable(list);
- }
- @ApiOperation(value = "列表")
- @GetMapping(value = "listByType")
- public TableDataInfo listByType(JcebQueryVo query) {
- startPage();
- JcebQueryUtil.setBusJcebQuery(query);
- JcebTypeEnum jcebTypeEnum = JcebTypeEnum.ofValue(query.getJcebType());
- List<JcebRecordVo> list = null;
- switch (jcebTypeEnum) {
- case Jddz:
- list = jddzService.getListByType(query);
- break;
- case Gjsfx:
- list = gjsfxService.getListByType(query);
- break;
- case Qmjcjl:
- list = qmjcjlService.getListByType(query);
- break;
- case Xsjcjl:
- list = xsjcjlService.getListByType(query);
- break;
- case Jyzqsjl:
- list = jyzqsjlService.getListByType(query);
- break;
- case Lbjghjl:
- list = lbjghjlService.getListByType(query);
- break;
- case Fzswjfxc:
- list = fzswjfxcService.getListByType(query);
- break;
- case Blq:
- list = blqService.getListByType(query);
- break;
- case Dmcgyq:
- list = dmcgyqService.getListByType(query);
- break;
- case Fdfxjyq:
- list = fdfxjyqService.getListByType(query);
- break;
- case Glkg:
- list = glkgService.getListByType(query);
- break;
- case Jcxc:
- list = jcxcService.getListByType(query);
- break;
- case Wjcxc:
- list = wjcxcService.getListByType(query);
- break;
- default:
- break;
- }
- return getDataTable(list);
- }
- @ApiOperation(value = "导出Excel")
- @GetMapping(value = "exportExcel")
- public AjaxResult exportExcel(JcebQueryVo query) {
- JcebTypeEnum jcebTypeEnum = JcebTypeEnum.ofValue(query.getJcebType());
- String localFilePath = null;
- JcebQueryUtil.setBusJcebQuery(query);
- switch (jcebTypeEnum) {
- case Jddz:
- localFilePath = jddzService.exportExcel(query);
- break;
- case Gjsfx:
- localFilePath = gjsfxService.exportExcel(query);
- break;
- case Qmjcjl:
- localFilePath = qmjcjlService.exportExcel(query);
- break;
- case Xsjcjl:
- localFilePath = xsjcjlService.exportExcel(query);
- break;
- case Jyzqsjl:
- localFilePath = jyzqsjlService.exportExcel(query);
- break;
- case Lbjghjl:
- localFilePath = lbjghjlService.exportExcel(query);
- break;
- case Fzswjfxc:
- localFilePath = fzswjfxcService.exportExcel(query);
- break;
- case Blq:
- localFilePath = blqService.exportExcel(query);
- break;
- case Dmcgyq:
- localFilePath = dmcgyqService.exportExcel(query);
- break;
- case Fdfxjyq:
- localFilePath = fdfxjyqService.exportExcel(query);
- break;
- case Glkg:
- localFilePath = glkgService.exportExcel(query);
- break;
- case Jcxc:
- localFilePath = jcxcService.exportExcel(query);
- break;
- case Wjcxc:
- localFilePath = wjcxcService.exportExcel(query);
- break;
- default:
- break;
- }
- if (StringUtils.isEmpty(localFilePath)) {
- return AjaxResult.error("下载失败");
- }
- return fileService.uploadFile(localFilePath);
- }
- @ApiOperation(value = "汇总列表")
- @GetMapping(value = "listAll")
- public TableDataInfo listAll(JcebQueryVo query) {
- List<JcebCountVo> list = new ArrayList<>();
- for (JcebTypeEnum jcebTypeEnum : JcebTypeEnum.values()) {
- JcebCountVo jcebRecordVo = null;
- switch (jcebTypeEnum) {
- case Jddz:
- jcebRecordVo = jddzService.getCountByType(query);
- break;
- case Gjsfx:
- jcebRecordVo = gjsfxService.getCountByType(query);
- break;
- case Qmjcjl:
- jcebRecordVo = qmjcjlService.getCountByType(query);
- break;
- case Xsjcjl:
- jcebRecordVo = xsjcjlService.getCountByType(query);
- break;
- case Jyzqsjl:
- jcebRecordVo = jyzqsjlService.getCountByType(query);
- break;
- case Lbjghjl:
- jcebRecordVo = lbjghjlService.getCountByType(query);
- break;
- case Fzswjfxc:
- jcebRecordVo = fzswjfxcService.getCountByType(query);
- break;
- case Blq:
- jcebRecordVo = blqService.getCountByType(query);
- break;
- case Dmcgyq:
- jcebRecordVo = dmcgyqService.getCountByType(query);
- break;
- case Fdfxjyq:
- jcebRecordVo = fdfxjyqService.getCountByType(query);
- break;
- case Glkg:
- jcebRecordVo = glkgService.getCountByType(query);
- break;
- case Jcxc:
- jcebRecordVo = jcxcService.getCountByType(query);
- break;
- case Wjcxc:
- jcebRecordVo = wjcxcService.getCountByType(query);
- break;
- default:
- break;
- }
- if (null != jcebRecordVo) {
- jcebRecordVo.setJcebType(jcebTypeEnum.getCode());
- list.add(jcebRecordVo);
- }
- }
- // 汇总结果按日期(最新的操作日期)排序
- SortTypeEnum sortType = SortTypeEnum.ofValue(query.getIsAsc());
- JcebCountComparator comparator = new JcebCountComparator();
- if (null == sortType || sortType == SortTypeEnum.DESC) {
- comparator.setIsAsc(SortTypeEnum.DESC);
- list.sort(comparator);
- } else {
- log.info("排序类型 - {}", sortType.getNotes());
- comparator.setIsAsc(SortTypeEnum.ASC);
- list.sort(comparator);
- }
- return getDataTable(list);
- }
- /**
- * 按最后操作时间排序策略
- */
- static class JcebCountComparator implements Comparator<JcebCountVo> {
- private SortTypeEnum isAsc;
- public void setIsAsc(SortTypeEnum isAsc) {
- this.isAsc = isAsc;
- }
- @Override
- public int compare(JcebCountVo jceb1, JcebCountVo jceb2) {
- if (jceb1.getOperationDate() != null && jceb2.getOperationDate() != null) {
- long t1 = jceb1.getOperationDate().getTime();
- long t2 = jceb2.getOperationDate().getTime();
- int ret = Long.compare(t1, t2);
- if (isAsc == SortTypeEnum.DESC) {
- ret *= -1;
- }
- return ret;
- } else {
- return jceb1.getOperationDate() == null ? 1 : -1;
- }
- }
- }
- }
|