提交 9e0843ef authored 作者: ozoz's avatar ozoz

feat(check): 新增过滤退役和维修中的选项

上级 9f335a8b
...@@ -490,26 +490,25 @@ public class DeviceCheckController { ...@@ -490,26 +490,25 @@ public class DeviceCheckController {
List<DeviceLibrary> devInLib = devLib.get(true); List<DeviceLibrary> devInLib = devLib.get(true);
List<DeviceLibrary> devNotInLib = devLib.get(false); List<DeviceLibrary> devNotInLib = devLib.get(false);
// TODO: 2022/11/15 Integer filter = detail.getFilter();
// Integer filter = detail.getFilter(); if (filter == null) {
// if (filter == null) { filter = 0;
// filter = 0; }
// } switch (filter) {
// switch (filter) { case 1:
// case 1: devInLib = devInLib.stream().filter(o -> o.getLifeStatus() != 4).collect(toList());
// devInLib = devInLib.stream().filter(o -> o.getLifeStatus() != 4).collect(toList()); devNotInLib = devNotInLib.stream().filter(o -> o.getLifeStatus() != 4).collect(toList());
// devNotInLib = devNotInLib.stream().filter(o -> o.getLifeStatus() != 4).collect(toList()); break;
// break; case 2:
// case 2: devInLib = devInLib.stream().filter(o -> o.getLifeStatus() != 16).collect(toList());
// devInLib = devInLib.stream().filter(o -> o.getLifeStatus() != 16).collect(toList()); devNotInLib = devNotInLib.stream().filter(o -> o.getLifeStatus() != 16).collect(toList());
// devNotInLib = devNotInLib.stream().filter(o -> o.getLifeStatus() != 16).collect(toList()); break;
// break; case 3:
// case 3: devInLib = devInLib.stream().filter(o -> o.getLifeStatus() != 4).filter(o -> o.getLifeStatus() != 16).collect(toList());
// devInLib = devInLib.stream().filter(o -> o.getLifeStatus() != 4).filter(o -> o.getLifeStatus() != 16).collect(toList()); devNotInLib = devNotInLib.stream().filter(o -> o.getLifeStatus() != 4).filter(o -> o.getLifeStatus() != 16).collect(toList());
// devNotInLib = devNotInLib.stream().filter(o -> o.getLifeStatus() != 4).filter(o -> o.getLifeStatus() != 16).collect(toList()); break;
// break; default:
// default: }
// }
// 特殊单位处理 if DetailId = x , 则补充添加 name=[],[]单位的装备进来 // 特殊单位处理 if DetailId = x , 则补充添加 name=[],[]单位的装备进来
...@@ -892,7 +891,6 @@ public class DeviceCheckController { ...@@ -892,7 +891,6 @@ public class DeviceCheckController {
public ResponseEntity<ResultObj> checkUserA(@PathVariable Integer id, public ResponseEntity<ResultObj> checkUserA(@PathVariable Integer id,
@RequestParam int assignUserId, @RequestParam int assignUserId,
@RequestParam String checkResult, @RequestParam String checkResult,
// todo
@RequestParam String terminalInfo, @RequestParam String terminalInfo,
@RequestBody DetailVo detailVo) { @RequestBody DetailVo detailVo) {
// 获取参数 // 获取参数
......
...@@ -184,9 +184,8 @@ public class ExamController { ...@@ -184,9 +184,8 @@ public class ExamController {
0, list 0, list
); );
// TODO: 2022/11/15 startExam(checkExamVo, false, filter);
// startExam(checkExamVo, false, filter); // startExam(checkExamVo, false);
startExam(checkExamVo, false);
return ResponseEntity.ok("发起核查成功"); return ResponseEntity.ok("发起核查成功");
} }
...@@ -202,8 +201,8 @@ public class ExamController { ...@@ -202,8 +201,8 @@ public class ExamController {
@ApiOperation(value = "发起检查", notes = "手动发起核查,需要指定参数") @ApiOperation(value = "发起检查", notes = "手动发起核查,需要指定参数")
@PostMapping("/confirm/startExam") @PostMapping("/confirm/startExam")
public ResponseEntity<ResultObj> startExam(@RequestBody CheckExamVo ceVo, public ResponseEntity<ResultObj> startExam(@RequestBody CheckExamVo ceVo,
@RequestParam(defaultValue = "true", required = false) boolean isExam @RequestParam(defaultValue = "true", required = false) boolean isExam,
// @RequestParam(defaultValue = "0", required = false) Integer filter @RequestParam(defaultValue = "0", required = false) Integer filter
) { ) {
// 获取需要处理的代管单位集合 // 获取需要处理的代管单位集合
...@@ -277,21 +276,20 @@ public class ExamController { ...@@ -277,21 +276,20 @@ public class ExamController {
.filter(d -> d.getLifeStatus() != 2 && d.getLifeStatus() != 14); .filter(d -> d.getLifeStatus() != 2 && d.getLifeStatus() != 14);
Map<String, List<DeviceLibrary>> devNotInLib = new HashMap<>(); Map<String, List<DeviceLibrary>> devNotInLib = new HashMap<>();
// TODO: 2022/11/15 switch (filter) {
// switch (filter) { case 1:
// case 1: // 维修状态 4
// // 维修状态 4 devNotInLib = deviceLibraryStream.filter(d -> d.getLifeStatus() != 4).collect(groupingBy(DeviceLibrary::getOwnUnit));
// devNotInLib = deviceLibraryStream.filter(d -> d.getLifeStatus() != 4).collect(groupingBy(DeviceLibrary::getOwnUnit)); break;
// break; case 2:
// case 2: // 过滤退役中 16
// // 过滤退役中 16 devNotInLib = deviceLibraryStream.filter(d -> d.getLifeStatus() != 16).collect(groupingBy(DeviceLibrary::getOwnUnit));
// devNotInLib = deviceLibraryStream.filter(d -> d.getLifeStatus() != 16).collect(groupingBy(DeviceLibrary::getOwnUnit)); break;
// break; case 3:
// case 3: devNotInLib = deviceLibraryStream.filter(d -> d.getLifeStatus() != 16).filter(d -> d.getLifeStatus() != 4).collect(groupingBy(DeviceLibrary::getOwnUnit));
// devNotInLib = deviceLibraryStream.filter(d -> d.getLifeStatus() != 16).filter(d -> d.getLifeStatus() != 4).collect(groupingBy(DeviceLibrary::getOwnUnit)); break;
// break; default:
// default: }
// }
// 3 如果是省级账户发起的检查,需要构建省局、省直属、市级的统计任务 // 3 如果是省级账户发起的检查,需要构建省局、省直属、市级的统计任务
// 3-1 核查/检查,创建省局单位的账单及详情 // 3-1 核查/检查,创建省局单位的账单及详情
...@@ -348,8 +346,7 @@ public class ExamController { ...@@ -348,8 +346,7 @@ public class ExamController {
devNotInLib.getOrDefault(unit.getName(), new ArrayList<>())); devNotInLib.getOrDefault(unit.getName(), new ArrayList<>()));
unitDetailDoc.setVar2(String.valueOf(CHECK_DETAIL_CITY_0.id)); unitDetailDoc.setVar2(String.valueOf(CHECK_DETAIL_CITY_0.id));
// TODO: 2022/11/15 unitDetailDoc.setFilter(filter);
// unitDetailDoc.setFilter(filter);
DeviceCheckDetail detail = detailRepo.save(unitDetailDoc); DeviceCheckDetail detail = detailRepo.save(unitDetailDoc);
detailIds.add(detail.getId()); detailIds.add(detail.getId());
// 将id放入统计中去 model -> areaName -> detailId // 将id放入统计中去 model -> areaName -> detailId
...@@ -413,8 +410,7 @@ public class ExamController { ...@@ -413,8 +410,7 @@ public class ExamController {
devNotInLib.getOrDefault(unit.getName(), new ArrayList<>())); devNotInLib.getOrDefault(unit.getName(), new ArrayList<>()));
unitDetailDoc.setVar2(String.valueOf(CHECK_DETAIL_CITY_0.id)); unitDetailDoc.setVar2(String.valueOf(CHECK_DETAIL_CITY_0.id));
// TODO: 2022/11/15 unitDetailDoc.setFilter(filter);
// unitDetailDoc.setFilter(filter);
DeviceCheckDetail detail = detailRepo.save(unitDetailDoc); DeviceCheckDetail detail = detailRepo.save(unitDetailDoc);
detailIds.add(detail.getId()); detailIds.add(detail.getId());
...@@ -481,8 +477,7 @@ public class ExamController { ...@@ -481,8 +477,7 @@ public class ExamController {
devNotInLib.getOrDefault(unit.getName(), new ArrayList<>())); devNotInLib.getOrDefault(unit.getName(), new ArrayList<>()));
unitDetailDoc.setVar2(String.valueOf(CHECK_DETAIL_CITY_0.id)); unitDetailDoc.setVar2(String.valueOf(CHECK_DETAIL_CITY_0.id));
// TODO: 2022/11/15 unitDetailDoc.setFilter(filter);
// unitDetailDoc.setFilter(filter);
DeviceCheckDetail detail = detailRepo.save(unitDetailDoc); DeviceCheckDetail detail = detailRepo.save(unitDetailDoc);
detailIds.add(detail.getId()); detailIds.add(detail.getId());
...@@ -558,8 +553,7 @@ public class ExamController { ...@@ -558,8 +553,7 @@ public class ExamController {
devNotInLib.getOrDefault(qu.getName(), new ArrayList<>())); devNotInLib.getOrDefault(qu.getName(), new ArrayList<>()));
unitDetailDoc.setVar2(qu.getLevel() == 2 ? String.valueOf(CHECK_DETAIL_CITY_0.id) : String.valueOf(CHECK_DETAIL_REGION_0.id)); unitDetailDoc.setVar2(qu.getLevel() == 2 ? String.valueOf(CHECK_DETAIL_CITY_0.id) : String.valueOf(CHECK_DETAIL_REGION_0.id));
// TODO: 2022/11/15 unitDetailDoc.setFilter(filter);
// unitDetailDoc.setFilter(filter);
DeviceCheckDetail detail = detailRepo.save(unitDetailDoc); DeviceCheckDetail detail = detailRepo.save(unitDetailDoc);
detailIds.add(detail.getId()); detailIds.add(detail.getId());
...@@ -611,8 +605,7 @@ public class ExamController { ...@@ -611,8 +605,7 @@ public class ExamController {
devNotInLib.getOrDefault(unit.getName(), new ArrayList<>())); devNotInLib.getOrDefault(unit.getName(), new ArrayList<>()));
unitDetailDoc.setVar2(String.valueOf(CHECK_DETAIL_REGION_0.id)); unitDetailDoc.setVar2(String.valueOf(CHECK_DETAIL_REGION_0.id));
// TODO: 2022/11/15 unitDetailDoc.setFilter(filter);
// unitDetailDoc.setFilter(filter);
DeviceCheckDetail detail = detailRepo.save(unitDetailDoc); DeviceCheckDetail detail = detailRepo.save(unitDetailDoc);
detailIds.add(detail.getId()); detailIds.add(detail.getId());
......
...@@ -175,8 +175,8 @@ public class DeviceCheckDetail extends BaseEntity { ...@@ -175,8 +175,8 @@ public class DeviceCheckDetail extends BaseEntity {
@Column(name = "checkE_name") @Column(name = "checkE_name")
private String checkEName = ""; private String checkEName = "";
// @ApiModelProperty(value = "非在库装备过滤条件;1_过滤维修;2_过滤退役中;3_过滤维修和退役") @ApiModelProperty(value = "非在库装备过滤条件;1_过滤维修;2_过滤退役中;3_过滤维修和退役")
// private Integer filter; private Integer filter;
/** /**
* 用于生成市级的核查详情账单的构造函数 * 用于生成市级的核查详情账单的构造函数
......
...@@ -2,9 +2,8 @@ package com.tykj.dev.device.confirmcheck.repository; ...@@ -2,9 +2,8 @@ package com.tykj.dev.device.confirmcheck.repository;
import com.tykj.dev.device.confirmcheck.entity.domain.DeviceCheckStat; import com.tykj.dev.device.confirmcheck.entity.domain.DeviceCheckStat;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
import java.util.Optional;
/** /**
* DeviceCheckStatRepo. * DeviceCheckStatRepo.
...@@ -12,6 +11,6 @@ import java.util.Optional; ...@@ -12,6 +11,6 @@ import java.util.Optional;
* @author Matrix <xhyrzldf@gmail.com> * @author Matrix <xhyrzldf@gmail.com>
* @since 2020/8/16 at 5:26 下午 * @since 2020/8/16 at 5:26 下午
*/ */
public interface DeviceCheckStatDao extends JpaRepository<DeviceCheckStat, Integer> { public interface DeviceCheckStatDao extends JpaRepository<DeviceCheckStat, Integer>, JpaSpecificationExecutor<DeviceCheckStat> {
} }
package com.tykj.dev.device.confirmcheck.service;
/**
* 装备大屏-核查相关service
*
* @author ozoz
* @date 2022/11/22
**/
public interface CheckScreenService {
}
package com.tykj.dev.device.confirmcheck.service.impl;
import com.github.wenhao.jpa.PredicateBuilder;
import com.github.wenhao.jpa.Specifications;
import com.tykj.dev.config.domin.CheckUnitInfo;
import com.tykj.dev.device.confirmcheck.entity.domain.DeviceCheckDetail;
import com.tykj.dev.device.confirmcheck.entity.domain.DeviceCheckStat;
import com.tykj.dev.device.confirmcheck.repository.DeviceCheckDetailDao;
import com.tykj.dev.device.confirmcheck.repository.DeviceCheckStatDao;
import com.tykj.dev.device.confirmcheck.service.CheckScreenService;
import com.tykj.dev.device.task.repository.TaskDao;
import com.tykj.dev.device.task.subject.domin.Task;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author ozoz
* @date 2022/11/22
**/
@Service
@Slf4j
public class CheckScreenServiceImpl implements CheckScreenService {
@Autowired
private DeviceCheckDetailDao detailDao;
@Autowired
private TaskDao taskDao;
@Autowired
private DeviceCheckStatDao statDao;
public void statMapData() {
PredicateBuilder<DeviceCheckStat> and = Specifications.and();
LocalDateTime now = LocalDateTime.now();
and.ge("endTime", now);
and.le("endTIme", now.plusDays(2));
// 查询到所有快过期到统计任务
List<DeviceCheckStat> statList = statDao.findAll(and.build());
// 查询task,所有的顶级任务
List<Task> tasks = taskDao.findAllById(statList.parallelStream().map(DeviceCheckStat::getId).collect(Collectors.toList()))
.parallelStream().filter(o -> o.getParentTaskId() != 0).collect(Collectors.toList());
List<CheckUnitInfo> rs = new ArrayList<>();
for (Task task : tasks) {
List<Task> secondTasks = taskDao.findAllByParentTaskId(task.getId());
for (Task secondTask : secondTasks) {
if (secondTask.getBusinessType() == 8) {
CheckUnitInfo c = CheckFill(initCheckUnitInfo(task), secondTask);
rs.add(c);
} else {
List<Task> threeTasks = taskDao.findAllByParentTaskId(secondTask.getId());
for (Task threeTask : threeTasks) {
if (threeTask.getBusinessType() == 8) {
CheckUnitInfo c = CheckFill(initCheckUnitInfo(task), threeTask);
rs.add(c);
}
}
}
}
}
}
private CheckUnitInfo initCheckUnitInfo(Task task) {
CheckUnitInfo checkUnitInfo = new CheckUnitInfo();
DeviceCheckStat deviceCheckStat = statDao.findById(task.getId()).orElse(new DeviceCheckStat());
checkUnitInfo.setStartTime(deviceCheckStat.getStartTime());
checkUnitInfo.setEndTime(deviceCheckStat.getEndTime());
checkUnitInfo.setUnitId(task.getOwnUnit());
// 判断是检查还是核查
if ("check".equals(task.getCustomInfo())) {
checkUnitInfo.setType(1);
} else if ("exam".equals(task.getCustomInfo())) {
checkUnitInfo.setType(2);
}
return checkUnitInfo;
}
private CheckUnitInfo CheckFill(CheckUnitInfo checkUnitInfo, Task task) {
DeviceCheckDetail detail = detailDao.findById(task.getBillId()).orElse(new DeviceCheckDetail());
checkUnitInfo.setBillId(task.getBillId());
if (detail.getUserAId() != null) {
checkUnitInfo.setCheckOneInfo(1);
}
if (detail.getUserBId() != null) {
checkUnitInfo.setCheckTwoInfo(1);
}
if (detail.getUserCId() != null) {
checkUnitInfo.setCheckThreeInfo(1);
}
return checkUnitInfo;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论