提交 5018fdc4 authored 作者: tykj's avatar tykj

feat:检查模块功能变更流程

上级 9985d24c
//package com.tykj.dev.device.confirmcheck.controller;
//
//import com.google.common.collect.ImmutableMap;
//import com.tykj.dev.config.swagger.AutoDocument;
//import com.tykj.dev.device.confirmcheck.common.CheckType;
//import com.tykj.dev.device.confirmcheck.entity.domain.DeviceCheckDetail;
//import com.tykj.dev.device.confirmcheck.entity.domain.DeviceCheckStat;
//import com.tykj.dev.device.confirmcheck.entity.vo.*;
//import com.tykj.dev.device.confirmcheck.repository.DeviceCheckBillDao;
//import com.tykj.dev.device.confirmcheck.repository.DeviceCheckDetailDao;
//import com.tykj.dev.device.confirmcheck.repository.DeviceCheckLinkDao;
//import com.tykj.dev.device.confirmcheck.repository.DeviceCheckStatDao;
//import com.tykj.dev.device.confirmcheck.service.CheckUnitService;
//import com.tykj.dev.device.confirmcheck.service.ConfirmCheckService;
//import com.tykj.dev.device.confirmcheck.utils.ObjTransUtil;
//import com.tykj.dev.device.library.repository.DeviceLibraryDao;
//import com.tykj.dev.device.library.service.DeviceLibraryCacheService;
//import com.tykj.dev.device.library.subject.domin.DeviceLibrary;
//import com.tykj.dev.device.selfcheck.controller.SelfCheckController;
//import com.tykj.dev.device.task.repository.TaskDao;
//import com.tykj.dev.device.task.service.TaskLogService;
//import com.tykj.dev.device.task.service.TaskService;
//import com.tykj.dev.device.task.subject.bto.TaskBto;
//import com.tykj.dev.device.task.subject.domin.Task;
//import com.tykj.dev.device.user.base.enums.AuExample;
//import com.tykj.dev.device.user.cache.AreaCache;
//import com.tykj.dev.device.user.cache.UnitsCache;
//import com.tykj.dev.device.user.read.service.MessageService;
//import com.tykj.dev.device.user.subject.dao.AreaDao;
//import com.tykj.dev.device.user.subject.dao.UnitsDao;
//import com.tykj.dev.device.user.subject.entity.Units;
//import com.tykj.dev.device.user.subject.entity.User;
//import com.tykj.dev.device.user.subject.entity.bto.AreaUnit;
//import com.tykj.dev.device.user.subject.service.AuService;
//import com.tykj.dev.device.user.subject.service.UnitsService;
//import com.tykj.dev.device.user.subject.service.UserService;
//import com.tykj.dev.device.user.util.AuthenticationUtils;
//import com.tykj.dev.misc.utils.JacksonUtil;
//import com.tykj.dev.socket.MyWebSocket;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.http.ResponseEntity;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//
//import java.time.LocalDateTime;
//import java.util.*;
//import java.util.function.Function;
//
//import static com.tykj.dev.misc.base.BusinessEnum.CONFIRM_CHECK_DETAIL;
//import static com.tykj.dev.misc.base.BusinessEnum.CONFIRM_CHECK_STAT;
//import static com.tykj.dev.misc.base.StatusEnum.*;
//import static com.tykj.dev.misc.base.StatusEnum.CHECK_DETAIL_REGION_0;
//import static java.util.stream.Collectors.*;
//
///**
// * @author tykj
// */
//@RestController
//@RequestMapping(value = "/check")
//@AutoDocument
//@Slf4j
//@Api(tags = "核查(核查)模块", description = "核查模块", position = 1)
//public class CheckController {
//
//
// final String CHECK_RESULT_WAIT = "等待省查阅";
// final String CHECK_RESULT_DONE = "已查阅";
// Map<Integer, String> desMap = new HashMap<>();
// Map<Integer, String> desBillMap = new HashMap<>();
// private int specialDetailId = 0;
// private List<String> specialUnits = new ArrayList<>();
//
//
// @Autowired
// private UnitsCache unitsCache;
// @Autowired
// private DeviceCheckLinkDao linkRepo;
// @Autowired
// private DeviceCheckStatDao statRepo;
// @Autowired
// private DeviceCheckBillDao billRepo;
// @Autowired
// private AreaDao areaRepo;
// @Autowired
// private UnitsDao unitsRepo;
// @Autowired
// private DeviceLibraryDao deviceRepo;
// @Autowired
// private DeviceCheckDetailDao detailRepo;
// @Autowired
// private DeviceLibraryCacheService dcService;
// @Autowired
// private ObjTransUtil transUtil;
// @Autowired
// private TaskDao taskRepo;
// @Autowired
// private TaskService taskService;
// @Autowired
// private AuthenticationUtils authenticationUtils;
// @Autowired
// private AreaCache areaCache;
// @Autowired
// private AuService auService;
// @Autowired
// private ConfirmCheckService ccService;
// @Autowired
// private UserService userService;
// @Autowired
// private MyWebSocket myWebSocket;
// @Autowired
// private SelfCheckController selfCheckController;
// @Autowired
// private MessageService messageService;
// @Autowired
// private TaskLogService taskLogService;
// @Autowired
// private UnitsService unitsService;
// @Autowired
// private CheckUnitService checkUnitService;
//
//
//
// @ApiOperation(value = "发起核查", notes = "对指定单位发起核查任务")
// @PostMapping("/startCheck/bak")
// public ResponseEntity startCheck(@RequestBody CheckCheckVo ccVO) {
//
// // 代管单位id
// List<Integer> esIds = checkUnitService.findAllEscrow().stream().map(Units::getUnitId).collect(toList());
// esIds.retainAll(ccVO.getUnitRange());
//
// // 构建省的统计账单
// Integer startUnitId = ccVO.getUnitId();
// Units startUnit = unitsRepo.findById(startUnitId).get();
// List<Units> checkedUnits = unitsRepo.findAllById(ccVO.getUnitRange());
// // 1.发起自己的自查 (市,tpye=2,省 level = 0,1,2)
// // 2.发起自己的检查(只是市级别的 level=2)
// List<String> checkedUnitNames = checkedUnits.stream().map(Units::getName).collect(toList());
//
// log.info("[核查模块]发起核查,发起单位为{},被查单位为{}", startUnit.getName(), checkedUnitNames);
//
// // 构建省的统计账单,所有的checkedUnits都要被包含到统计中去
// DeviceCheckStat provinceCheckStat = initStatData(ccVO.getTitle(), ccVO.getRemark(), 0, 0, startUnit.getName(), checkedUnits, ccVO.getEndTime().atStartOfDay());
// provinceCheckStat.setCheckType(CheckType.CT_CHECK);
// Integer statId = statRepo.save(provinceCheckStat).getId();
// List<CheckDeviceStatVo> deviceStatVos = Arrays.stream(
// Objects.requireNonNull(JacksonUtil.readValue(provinceCheckStat.getStatInfo(), CheckDeviceStatVo[].class)))
// .collect(toList());
//
// // 构建省的统计任务
// TaskBto provStatTask = new Task(CHECK_STAT_1.id, getUnitDateString(startUnit, ccVO.getTitle()), 0, ".0.", CONFIRM_CHECK_STAT.id, statId, startUnitId)
// .parse2Bto();
// provStatTask.getInvolveUserIdList().add(authenticationUtils.getAuthentication().getCurrentUserInfo().getUserId());
// provStatTask.getInvolveUserIdList().add(0);
// provStatTask.setCurrentPoint(1);
// provStatTask.setCustomInfo("check");
// provStatTask = taskService.start(provStatTask);
//
// desMap.put(provStatTask.getId(), ccVO.getRemark());
//
//
// //构建市的检查任务(level=2)
// List<Units> examCheckUnits = checkedUnits.stream()
// .filter(units -> Arrays.asList(2).contains(units.getLevel()))
// .collect(toList());
//
// Map<Integer, Integer> cityExamIdMap = new HashMap<>();
//
// // 获取哪些市建立了统计任务
// List<Integer> citys = new ArrayList<>();
//
// for (Units unit : examCheckUnits) {
//
// //构建市的统计账单
// String cityTitle = unit.getName() + "检查统计";
// DeviceCheckStat cityCheckStat = initStatData(cityTitle, ccVO.getRemark(),
// 0, 0, unit.getName(), Collections.emptyList(), ccVO.getEndTime().atStartOfDay());
// cityCheckStat.setCheckType(CheckType.CT_EXAM);
// Integer cityStatId = statRepo.save(cityCheckStat).getId();
// log.info("[核查模块] {} 检查统计账单构建完毕,id 为 {}", unit.getName(), cityStatId);
//
// // 构建市的统计任务
// TaskBto cityStatTask = new TaskBto(CHECK_EXAM_STAT_0.id, getUnitDateString(unit, ccVO.getTitle()), provStatTask.getId(), addNode(provStatTask.getNodeIdDetail(), provStatTask.getId()), CONFIRM_CHECK_STAT.id, cityStatId, unit.getUnitId(), 0);
// cityStatTask.getInvolveUserIdList().add(0);
// cityStatTask.setCurrentPoint(1);
// cityStatTask.setCustomInfo("exam");
// cityStatTask = taskService.start(cityStatTask);
//
// //将市的检查id记录下,以便设置市的自查任务的父级节点
// cityExamIdMap.put(unit.getUnitId(), cityStatTask.getId());
//
// // 自动创建市里的任务
// List<Units> inCitys = unitsCache.findByIdSubordinateAndOneself(unit.getUnitId());
// CheckExamVo checkExamVo = new CheckExamVo();
// checkExamVo.setDetail(Collections.singletonList(
// CheckExamDetailVo.builder().
// unitIds(
// checkUnitService.findExistDevice(
// inCitys.stream()
// .filter(units -> units.getUnitId() != unit.getUnitId())
// .map(Units::getUnitId)
// .collect(toList())
// )
// )
// .remark(ccVO.getRemark())
// .build())
// );
// checkExamVo.setTitle(ccVO.getTitle());
// checkExamVo.setUnitId(unit.getUnitId());
// checkExamVo.setExamStatId(cityStatId);
// checkExamVo.setEndTime(ccVO.getEndTime());
//// startExam(checkExamVo);
// }
//
// // 构建自核查任务(levl = 0,1) tpye = 2
// List<Units> selfCheckUnits = checkedUnits.stream()
// .filter(units -> Arrays.asList(0, 1).contains(units.getLevel()) || units.getType() == 2)
// .collect(toList());
//
// // 获取所有在库装备 lifeStatus ==2 or 14
// Map<String, List<DeviceLibrary>> devInLib = dcService.getAllDeviceLibraryList().stream()
//// .filter(device -> device.getOwnUnit().equals(device.getLocationUnit()))
// .filter(d -> d.getLifeStatus() == 2 || d.getLifeStatus() == 14)
// .collect(groupingBy(DeviceLibrary::getOwnUnit));
//
// // 获取所有非在库装备 ls != 2 and != 14
// Map<String, List<DeviceLibrary>> devNotInLib = dcService.getAllDeviceLibraryList().stream()
//// .filter(device -> !device.getOwnUnit().equals(device.getLocationUnit()))
// .filter(d -> d.getLifeStatus() != 2 && d.getLifeStatus() != 14)
// .collect(groupingBy(DeviceLibrary::getOwnUnit));
//
//
// User loginUser = authenticationUtils.getAuthentication().getCurrentUserInfo();
//
// for (Units unit : selfCheckUnits) {
// //核查组成员名称用当前登录用户
// String names = "默认检查组";
//
// // 如果是市level=2 的话,father Id为市的检查id
// Integer fatherId = 0;
// Integer initStatusId = 0;
//
// // level = 1 或者2 市省级 否则 就是区级 ,市省级的自查初始状态160,区级的自查初始状态140
// // type = 2 160 ,tpye = 1 && level = 1 || level = 2 160
// boolean directProv = unit.getType() == 2;
// boolean normalProv = unit.getType() == 1 && (unit.getLevel() == 1 || unit.getLevel() == 2);
//
// if (directProv || normalProv) {
// fatherId = cityExamIdMap.get(unit.getUnitId());
// initStatusId = CHECK_DETAIL_CITY_0.id;
// if (fatherId == null) {
// fatherId = provStatTask.getId();
// }
// } else {
// fatherId = provStatTask.getId();
// initStatusId = CHECK_DETAIL_REGION_0.id;
// }
//
// // 3-1 构建被查单位的 自核查账单
// DeviceCheckDetail unitDetailDoc = DeviceCheckDetail
// .EmptyWithChecker(names + "|" + "默认备注", ccVO.getRemark(),
// 0, 0, 0, 0, unit.getName(),
// unitsRepo.findByName(unit.getName()).getUnitId(),
// devInLib.getOrDefault(unit.getName(), new ArrayList<>()),
// devNotInLib.getOrDefault(unit.getName(), new ArrayList<>()));
// unitDetailDoc.setVar2(String.valueOf(initStatusId));
// DeviceCheckDetail detail = detailRepo.save(unitDetailDoc);
// // 将id放入统计中去 model -> areaName -> detailId
// String areaName = auService.findOne(AuExample.UnitId, unit.getUnitId()).getName();
// for (CheckDeviceStatVo statVo : deviceStatVos) {
// for (CheckAreaStatVo asv : statVo.getAreaStatList()) {
// if (asv.getAreaName().equals(areaName)) {
// asv.setAreaStatId(statId);
// asv.setAreaDetailId(detail.getId());
// }
// }
// }
//
// // 3-2 构建被查单位的 自查任务 (根据被查单位的级别来区分是县级状态是市级状态) 这里的父级任务应该是省统计
//
// //处理ownUnit的代码 - 如果省直属有账号发给省直属的,没有账号就发给省做 用于处理没有账号的单位的可见性
// Integer ownUnitId = 0;
// boolean notHasAccount = unit.getEscrow() == 1;
// if (notHasAccount) {
// ownUnitId = 1;
// } else {
// ownUnitId = unit.getUnitId();
// }
//
// TaskBto checkedTask = new TaskBto(initStatusId, getUnitDateString(unit, ccVO.getTitle()), fatherId, addNode(provStatTask.getNodeIdDetail(), provStatTask.getId()), CONFIRM_CHECK_DETAIL.id, detail.getId(), ownUnitId, 0);
// checkedTask.setCustomInfo("manual");
// taskService.start(checkedTask);
// }
//
//
// return ResponseEntity.ok(ImmutableMap.of("msg", "发起核查成功"));
// }
//
//
// /**
// * @param initUnitNames 初始化指定单位的数据
// * @return
// */
// private DeviceCheckStat initStatData(List<String> initUnitNames, String title, String remark, Integer checkAId, Integer checkBId, String startUnitName, List<Units> unitsList, LocalDateTime endTime) {
// return new DeviceCheckStat(
// CheckType.CT_EXAM,
// title,
// startUnitName + "待核查装备统计单",
// "[]",
// checkAId,
// checkBId,
// remark,
// endTime);
// }
//
// /**
// * 构建初始化核查统计数据
// * 依据不同地区装备的在库情况构造出舒适化的统计数据出来
// *
// * @param title 标题
// * @param remark 备注
// * @param checkAId 核查组成员A id
// * @param checkBId 核查组成员B id
// * @param startUnitName 发起核查的单位名
// * @param unitsList 被核查单位列表
// * @return 一份初始化好统计数据(没有向上合并 , 只做了同级地区数据合并)的核查统计单
// */
// private DeviceCheckStat initStatData(String title, String remark, Integer checkAId, Integer checkBId, String startUnitName, List<Units> unitsList, LocalDateTime endTime) {
// //获得要被统计的单位名列表
// List<String> unitNameList = unitsList.stream()
// .map(Units::getName)
// .collect(toList());
//
// List<AreaUnit> auList = unitsList.stream()
// .map(units -> auService.findOne(AuExample.UnitId, units.getUnitId()))
// .collect(toList());
//
// Collection<CheckDeviceStatVo> statVos;
// List<CheckDeviceStatVo> cds = dcService.getAllDeviceLibraryList()
// .stream()
// .filter(dev -> unitNameList.contains(dev.getOwnUnit()))
//// .filter(d->d.getLifeStatus() != 2 & d.getLifeStatus() != 14)
// .map(transUtil::device2InitStatVo)
// .collect(toList());
//
// statVos = cds.stream()
// .collect(toMap(d -> d.getDeviceModel() + d.getDeviceName(), Function.identity(), CheckDeviceStatVo::reduce))
// .values();
//
// //缺省地区数据补充 下面这段代码意义不明 - - 先注释掉 ,后面想起来了再决定是用还是删除
//// for (CheckDeviceStatVo statVo : statVos) {
//// if (statVo.getAreaStatList().size() < unitNameList.size()) {
//// List<String> existsAreaNames = statVo.getAreaStatList().stream()
//// .map(CheckAreaStatVo::getAreaName)
//// .collect(toList());
//// List<CheckAreaStatVo> supplementVos = auList.stream()
//// .filter(au -> !existsAreaNames.contains(au.getName()))
//// .map(au -> new CheckAreaStatVo(au.getName(), 0, 0, 0, 0, 0, 0))
//// .collect(toList());
//// statVo.getAreaStatList().addAll(supplementVos);
//// }
//// }
//
// return new DeviceCheckStat(
// CheckType.CT_EXAM,
// title,
// startUnitName + "待核查装备统计单",
// JacksonUtil.toJSon(new ArrayList<>(statVos)),
// checkAId,
// checkBId,
// remark,
// endTime);
// }
// private String getUnitDateString(Units units, String title) {
// return "[" + units.getUnitDesc() + "]" + title;
//
// }
//
//
// private String addNode(String originalNode, Integer fatherId) {
// return originalNode + fatherId + ".";
// }
//
//}
...@@ -675,7 +675,7 @@ public class DeviceCheckController { ...@@ -675,7 +675,7 @@ public class DeviceCheckController {
} }
@ApiOperation(value = "发起核查", notes = "对指定单位发起核查任务") @ApiOperation(value = "发起核查", notes = "对指定单位发起核查任务")
@PostMapping("/startCheck") @PostMapping("/startCheck/bak")
public ResponseEntity startCheck(@RequestBody CheckCheckVo ccVO) { public ResponseEntity startCheck(@RequestBody CheckCheckVo ccVO) {
// 代管单位id // 代管单位id
......
...@@ -64,7 +64,7 @@ import static java.util.stream.Collectors.*; ...@@ -64,7 +64,7 @@ import static java.util.stream.Collectors.*;
@RequestMapping(value = "/check") @RequestMapping(value = "/check")
@AutoDocument @AutoDocument
@Slf4j @Slf4j
@Api(tags = "核查模块(检查)", description = "检查模块", position = 1) @Api(tags = "核查模块(检查)", description = "检查模块", position = 2)
public class ExamController { public class ExamController {
@Autowired @Autowired
...@@ -80,6 +80,8 @@ public class ExamController { ...@@ -80,6 +80,8 @@ public class ExamController {
private int specialDetailId = 0; private int specialDetailId = 0;
private List<String> specialUnits = new ArrayList<>(); private List<String> specialUnits = new ArrayList<>();
@Autowired
private CheckUnitService checkUnitService;
@Autowired @Autowired
private DeviceCheckLinkDao linkRepo; private DeviceCheckLinkDao linkRepo;
@Autowired @Autowired
...@@ -121,9 +123,6 @@ public class ExamController { ...@@ -121,9 +123,6 @@ public class ExamController {
@Autowired @Autowired
private UnitsService unitsService; private UnitsService unitsService;
@Autowired
private CheckUnitService checkUnitService;
@GetMapping("/escrow/unit") @GetMapping("/escrow/unit")
@ApiOperation(value = "查询所有的代管单位,true_过滤无装备的单位,false_不过滤无装备的单位") @ApiOperation(value = "查询所有的代管单位,true_过滤无装备的单位,false_不过滤无装备的单位")
public ResponseEntity findEscrowUnit(@RequestParam(defaultValue = "false") boolean filter) { public ResponseEntity findEscrowUnit(@RequestParam(defaultValue = "false") boolean filter) {
...@@ -148,7 +147,24 @@ public class ExamController { ...@@ -148,7 +147,24 @@ public class ExamController {
return ResponseEntity.ok(new ResultObj<>(units)); return ResponseEntity.ok(new ResultObj<>(units));
} }
@ApiOperation(value = "发起核查", notes = "对指定单位发起核查任务")
@PostMapping("/confirm/startCheck")
public ResponseEntity startNewCheck(@RequestBody CheckCheckVo ccVO) {
List<CheckExamDetailVo> list = new ArrayList<>();
CheckExamDetailVo checkExamDetailVo = new CheckExamDetailVo("", Collections.emptyList(), ccVO.getUnitRange(), ccVO.getRemark());
list.add(checkExamDetailVo);
CheckExamVo checkExamVo = new CheckExamVo(ccVO.getTitle(),
ccVO.getEndTime(),
ccVO.getUnitId(),
0,list
);
startExam(checkExamVo,false);
return ResponseEntity.ok("发起核查成功");
}
/** /**
* 发起检查 * 发起检查
* <li>1. 添加发起核查bill记录</> * <li>1. 添加发起核查bill记录</>
...@@ -159,7 +175,8 @@ public class ExamController { ...@@ -159,7 +175,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) {
// 获取需要处理的代管单位集合 // 获取需要处理的代管单位集合
List<Integer> esIds = checkUnitService.findAllEscrow().stream().map(Units::getUnitId).collect(toList()); List<Integer> esIds = checkUnitService.findAllEscrow().stream().map(Units::getUnitId).collect(toList());
...@@ -190,55 +207,39 @@ public class ExamController { ...@@ -190,55 +207,39 @@ public class ExamController {
// 2-1 构建发起单位的 统计账单 // 2-1 构建发起单位的 统计账单
DeviceCheckStat provinceCheckStat; DeviceCheckStat provinceCheckStat;
//根据examStatId来判断是update还是create 此时初始化的为指定检查区域的数据 //根据examStatId来判断是update还是create 此时初始化的为指定检查区域的数据
DeviceCheckStat initCheckStat = initStatData(checkedUnitNames, ceVo.getTitle(), groupUserString, 0, 0, startUnit.getName(), checkedUnits, ceVo.getEndTime().atStartOfDay()); DeviceCheckStat initCheckStat = initStatData(checkedUnitNames,
if (ceVo.getExamStatId() != 0) { ceVo.getTitle(),
// 这里是市转发给区的逻辑 groupUserString,
DeviceCheckStat oriCheckStat = statRepo.findById(ceVo.getExamStatId()).get(); 0,
oriCheckStat.setRemark(initCheckStat.getRemark()); 0,
oriCheckStat.setStatInfo(initCheckStat.getStatInfo()); startUnit.getName(),
provinceCheckStat = oriCheckStat; checkedUnits,
} else { ceVo.getEndTime().atStartOfDay());
provinceCheckStat = initCheckStat; provinceCheckStat = initCheckStat;
}
log.info("[核查模块]发起手动检查,发起单位为{},被查单位为{}", startUnit.getName(), checkedUnitNames); log.info("[核查模块]发起手动检查,发起单位为{},被查单位为{}", startUnit.getName(), checkedUnitNames);
provinceCheckStat.setCheckType(CheckType.CT_EXAM); provinceCheckStat.setCheckType(isExam ? CheckType.CT_EXAM : CheckType.CT_CHECK);
// statId 该任务为最上级的stat任务,如果是省发起就是省最上级的统计,市发起,则是市最上级的统计 // statId 该任务为最上级的stat任务,如果是省发起就是省最上级的统计,市发起,则是市最上级的统计
Integer statId = statRepo.save(provinceCheckStat).getId(); Integer statId = statRepo.save(provinceCheckStat).getId();
// 2-2 构建发起单位的 统计任务 // 2-2 构建发起单位的 统计任务
// 2-2-1 如果是省级账户发起的检查,需要构建省局、省直属、市级的统计任务
// 根据examStatId来判断要不要重新创建任务 // 根据examStatId来判断要不要重新创建任务
Integer currentUserId = authenticationUtils.getAuthentication().getCurrentUserInfo().getUserId(); Integer currentUserId = authenticationUtils.getAuthentication().getCurrentUserInfo().getUserId();
TaskBto cityStatTask; TaskBto cityStatTask;
if (ceVo.getExamStatId() == 0) {
cityStatTask = new Task(CHECK_EXAM_STAT_1.id, cityStatTask = new Task(CHECK_EXAM_STAT_1.id,
getUnitDateString(startUnit, ceVo.getTitle()), getUnitDateString(startUnit, ceVo.getTitle()),
0, ".0.", CONFIRM_CHECK_STAT.id, statId, startUnitId) 0, ".0.", CONFIRM_CHECK_STAT.id, statId, startUnitId)
.parse2Bto(); .parse2Bto();
cityStatTask.setCustomInfo("exam"); cityStatTask.setCustomInfo(isExam ? "exam" : "check");
cityStatTask.getInvolveUserIdList().add(currentUserId); cityStatTask.getInvolveUserIdList().add(currentUserId);
// 检查变为待办 // 检查变为待办
cityStatTask.getInvolveUserIdList().add(0); cityStatTask.getInvolveUserIdList().add(0);
cityStatTask.setCurrentPoint(1); cityStatTask.setCurrentPoint(1);
cityStatTask = taskService.start(cityStatTask); cityStatTask = taskService.start(cityStatTask);
} else {
// 将原来的待办改为跟踪
cityStatTask = taskRepo.findByBillIdAndBusinessType(ceVo.getExamStatId(), CONFIRM_CHECK_STAT.id).get().parse2Bto();
//检查变为待办
cityStatTask.getInvolveUserIdList().add(0);
// cityStatTask.setRemark(String.valueOf(CHECK_EXAM_STAT_1.id));
cityStatTask.setCustomInfo("exam");
cityStatTask.setCurrentPoint(cityStatTask.getCurrentPoint() + 1);
cityStatTask.setCreateUserId(currentUserId);
cityStatTask.setBillStatus(CHECK_EXAM_STAT_1.id);
taskService.update(cityStatTask);
}
// 3 构建被查单位的 自查账单 与 自查任务
// 获取所有在库装备 ls == 2 or ls == 14 // 获取所有在库装备 ls == 2 or ls == 14
Map<String, List<DeviceLibrary>> devInLib = dcService.getAllDeviceLibraryList().stream() Map<String, List<DeviceLibrary>> devInLib = dcService.getAllDeviceLibraryList().stream()
.filter(d -> d.getLifeStatus() == 2 || d.getLifeStatus() == 14) .filter(d -> d.getLifeStatus() == 2 || d.getLifeStatus() == 14)
...@@ -249,103 +250,325 @@ public class ExamController { ...@@ -249,103 +250,325 @@ public class ExamController {
.filter(d -> d.getLifeStatus() != 2 && d.getLifeStatus() != 14) .filter(d -> d.getLifeStatus() != 2 && d.getLifeStatus() != 14)
.collect(groupingBy(DeviceLibrary::getOwnUnit)); .collect(groupingBy(DeviceLibrary::getOwnUnit));
// 3. 构建被核查单位的详情账单与Task
// 对每个需要核查的单位构建其detail账单与task
boolean isProvUser = authenticationUtils.getAuthentication()
.getCurrentUserInfo().getUnitsId() == 1;
for (CheckExamDetailVo ed : examDetailVos) {
List<Integer> uid = ed.getUnitIds();
for (Integer u : uid) {
Units unit = unitsRepo.findById(u).get();
String names = "默认名称";
// 根据发起人决定初始状态id 省发起人- 160 其他发起人 被查的市160 被查的是区140
int initTaskStatusId = 0;
if (isProvUser) {
initTaskStatusId = CHECK_DETAIL_CITY_0.id;
} else {
//再根据被查单位的级别 level = 3 区140 level =2市 160
if (unit.getLevel() == 3) {
initTaskStatusId = CHECK_DETAIL_REGION_0.id;
} else {
initTaskStatusId = CHECK_DETAIL_CITY_0.id;
}
}
// 3-1 构建被查单位的 自查账单 // 3 如果是省级账户发起的检查,需要构建省局、省直属、市级的统计任务
// 3-1 创建省局单位的账单及详情
if (checkTypeNum(ceVo.getDetail().get(0).getUnitIds(), 1)) {
// 3-1-1 创建省局单位的统计账单
DeviceCheckStat proStat = new DeviceCheckStat(ceVo.getTitle(), "", LocalDateTime.now(), ceVo.getEndTime().atStartOfDay(),
"[]", 0, 0, ceVo.getDetail().get(0).getRemark());
proStat.setCheckType(isExam ? CheckType.CT_EXAM : CheckType.CT_CHECK);
DeviceCheckStat proStatSave = statRepo.save(proStat);
// 3-1-2 构建省局单位的任务
TaskBto taskBtoPro = new Task(CHECK_EXAM_STAT_0.id,
getUnitDateString(startUnit, ceVo.getTitle()),
cityStatTask.getId(), ".0.", CONFIRM_CHECK_STAT.id, proStatSave.getId(), startUnitId)
.parse2Bto();
taskBtoPro.setCustomInfo(isExam ? "exam" : "check");
taskBtoPro.getInvolveUserIdList().add(currentUserId);
// 检查变为待办
taskBtoPro.getInvolveUserIdList().add(0);
taskBtoPro.setCurrentPoint(1);
taskBtoPro = taskService.start(taskBtoPro);
// 3-1-3 构建省级单位的自查账单及任务
List<Units> unitsPro = checkedUnits.stream().filter(o -> o.getLevel() == 1 && o.getType() == 2).collect(toList());
for (Units unit : unitsPro) {
DeviceCheckDetail unitDetailDoc = DeviceCheckDetail.EmptyWithChecker( DeviceCheckDetail unitDetailDoc = DeviceCheckDetail.EmptyWithChecker(
names + "|" + ed.getRemark(), ceVo.getDetail().get(0).getRemark(),
ceVo.getTitle() + "%^&" + ed.getRemark(), ceVo.getTitle() + "%^&" + "省局单位检查",
0, 0, 0, 0, 0, 0, 0, 0,
unit.getName(), unit.getName(),
unitsRepo.findByName(unit.getName()).getUnitId(), unitsRepo.findByName(unit.getName()).getUnitId(),
devInLib.getOrDefault(unit.getName(), new ArrayList<>()), devInLib.getOrDefault(unit.getName(), new ArrayList<>()),
devNotInLib.getOrDefault(unit.getName(), new ArrayList<>())); devNotInLib.getOrDefault(unit.getName(), new ArrayList<>()));
unitDetailDoc.setVar2(String.valueOf(initTaskStatusId));
unitDetailDoc.setVar2(String.valueOf(CHECK_DETAIL_CITY_0.id));
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
String areaName = auService.findOne(AuExample.UnitId, unit.getUnitId()).getName(); String areaName = auService.findOne(AuExample.UnitId, unit.getUnitId()).getName();
// 3-2 构建被查单位的 自查任务 (根据被查单位的级别来区分是县级状态是市级状态) // 3-2 构建被查单位的 自查任务 (根据被查单位的级别来区分是县级状态是市级状态)
TaskBto checkedTask = new TaskBto( TaskBto checkedTask = new TaskBto(
initTaskStatusId, CHECK_DETAIL_CITY_0.id,
getUnitDateString(unit, ceVo.getTitle()), getUnitDateString(unit, ceVo.getTitle()),
cityStatTask.getId(), taskBtoPro.getId(),
addNode(cityStatTask.getNodeIdDetail(), cityStatTask.getId()), addNode(taskBtoPro.getNodeIdDetail(), taskBtoPro.getId()),
CONFIRM_CHECK_DETAIL.id, CONFIRM_CHECK_DETAIL.id,
detail.getId(), detail.getId(),
unit.getUnitId(), unit.getUnitId(),
0); 0);
// checkedTask.setRemark(String.valueOf(CHECK_EXAM_DETAIL_0.id));
checkedTask.setCustomInfo("manual"); checkedTask.setCustomInfo("manual");
checkedTask = taskService.start(checkedTask); taskService.start(checkedTask);
desBillMap.put(detail.getId(), ed.getRemark());
desMap.put(checkedTask.getId(), ed.getRemark());
} }
} }
// 3-2 创建省直属单位的账单及详情
if (checkTypeNum(ceVo.getDetail().get(0).getUnitIds(), 2)) {
// 3-1-1 创建省直单位的统计账单
DeviceCheckStat esStat = new DeviceCheckStat(ceVo.getTitle(), "", LocalDateTime.now(), ceVo.getEndTime().atStartOfDay(),
"[]", 0, 0, ceVo.getDetail().get(0).getRemark());
esStat.setCheckType(isExam ? CheckType.CT_EXAM : CheckType.CT_CHECK);
DeviceCheckStat esStatSave = statRepo.save(esStat);
// 4. 构建直属单位的统计,只有省会发起直属单位的检查/核查,不涉及转发,因此examStatId = 0,且unit 的level = 1,type =1时才会触发 // 3-1-2 构建省直单位的任务
if (ceVo.getExamStatId() == 0 && startUnit.getType() == 1 && startUnit.getLevel() == 1) { TaskBto taskBtoEs = new Task(CHECK_EXAM_STAT_0.id,
getUnitDateString(startUnit, ceVo.getTitle()),
cityStatTask.getId(), ".0.", CONFIRM_CHECK_STAT.id, esStatSave.getId(),
// 省直单位的检查任务应该给省里
unitsRepo.findAllByTypeAndLevel(1, 1).get(0).getUnitId()).parse2Bto();
taskBtoEs.setCustomInfo(isExam ? "exam" : "check");
taskBtoEs.getInvolveUserIdList().add(currentUserId);
// 检查变为待办
taskBtoEs.getInvolveUserIdList().add(0);
taskBtoEs.setCurrentPoint(1);
taskBtoEs = taskService.start(taskBtoEs);
DeviceCheckStat escrowStat = initStatData( // 3-1-3 构建省级单位的自查账单及任务
checkedUnitNames, List<Units> unitsEs = checkedUnits.stream().filter(o -> o.getEscrow() == 1).collect(toList());
ceVo.getTitle(),
groupUserString,
0,
0,
startUnit.getName(),
checkedUnits,
ceVo.getEndTime().atStartOfDay()
);
escrowStat.setSubtitle("省直属单位待核查装备统计单");
DeviceCheckStat esSaveStat = statRepo.save(escrowStat);
TaskBto esTaskBto; for (Units unit : unitsEs) {
esTaskBto = new Task(CHECK_EXAM_STAT_0.id, DeviceCheckDetail unitDetailDoc = DeviceCheckDetail.EmptyWithChecker(
"[省直属单位]" + ceVo.getTitle(), ceVo.getDetail().get(0).getRemark(),
cityStatTask.getId(), ".0.", CONFIRM_CHECK_STAT.id, esSaveStat.getId(), startUnitId) ceVo.getTitle() + "%^&" + "省直单位检查",
.parse2Bto(); 0, 0, 0, 0,
unit.getName(),
unitsRepo.findByName(unit.getName()).getUnitId(),
devInLib.getOrDefault(unit.getName(), new ArrayList<>()),
devNotInLib.getOrDefault(unit.getName(), new ArrayList<>()));
unitDetailDoc.setVar2(String.valueOf(CHECK_DETAIL_CITY_0.id));
DeviceCheckDetail detail = detailRepo.save(unitDetailDoc);
detailIds.add(detail.getId());
esTaskBto.setCustomInfo("exam"); // 3-2 构建被查单位的 自查任务 (根据被查单位的级别来区分是县级状态是市级状态)
esTaskBto.getInvolveUserIdList().add(currentUserId); TaskBto checkedTask = new TaskBto(
CHECK_DETAIL_CITY_0.id,
getUnitDateString(unit, ceVo.getTitle()),
taskBtoEs.getId(),
addNode(taskBtoEs.getNodeIdDetail(), taskBtoEs.getId()),
CONFIRM_CHECK_DETAIL.id,
detail.getId(),
// 省直单位的检查任务应该给省里
unitsRepo.findAllByTypeAndLevel(1, 1).get(0).getUnitId(),
0);
checkedTask.setCustomInfo("manual");
taskService.start(checkedTask);
}
}
// 3-3 创建市单位的账单及详情,并且发起单位为省局
if (checkTypeNum(ceVo.getDetail().get(0).getUnitIds(), 3)
&& (ceVo.getUnitId().equals(unitsRepo.findAllByTypeAndLevel(1, 1).get(0).getUnitId()))) {
// 3-1-1 创建市里的的统计账单
DeviceCheckStat ciyStat = new DeviceCheckStat(ceVo.getTitle(), "", LocalDateTime.now(), ceVo.getEndTime().atStartOfDay(),
"[]", 0, 0, ceVo.getDetail().get(0).getRemark());
ciyStat.setCheckType(isExam ? CheckType.CT_EXAM : CheckType.CT_CHECK);
DeviceCheckStat cityStatSave = statRepo.save(ciyStat);
// 3-1-2 构建市单位的任务
TaskBto taskBtoCity = new Task(CHECK_EXAM_STAT_0.id,
getUnitDateString(startUnit, ceVo.getTitle()),
cityStatTask.getId(), ".0.", CONFIRM_CHECK_STAT.id, cityStatSave.getId(),
unitsRepo.findAllByTypeAndLevel(1, 1).get(0).getUnitId()).parse2Bto();
taskBtoCity.setCustomInfo("exam");
taskBtoCity.getInvolveUserIdList().add(currentUserId);
// 检查变为待办 // 检查变为待办
esTaskBto.getInvolveUserIdList().add(0); taskBtoCity.getInvolveUserIdList().add(0);
esTaskBto.setCurrentPoint(1); taskBtoCity.setCurrentPoint(1);
TaskBto start = taskService.start(esTaskBto); taskBtoCity = taskService.start(taskBtoCity);
Optional<List<Task>> esTask = taskRepo.findAllByOwnUnitInAndParentTaskId(esIds, cityStatTask.getId()); // 3-1-3 构建市单位的自查账单及任务
if (esTask.isPresent()) { List<Units> unitsEs = checkedUnits.stream().filter(o -> o.getLevel() == 2).collect(toList());
List<Task> tasks = esTask.get();
tasks.forEach(o -> o.setParentTaskId(start.getId())); for (Units unit : unitsEs) {
taskRepo.saveAll(tasks);
DeviceCheckDetail unitDetailDoc = DeviceCheckDetail.EmptyWithChecker(
ceVo.getDetail().get(0).getRemark(),
ceVo.getTitle() + "%^&" + "市级单位检查",
0, 0, 0, 0,
unit.getName(),
unit.getUnitId(),
devInLib.getOrDefault(unit.getName(), new ArrayList<>()),
devNotInLib.getOrDefault(unit.getName(), new ArrayList<>()));
unitDetailDoc.setVar2(String.valueOf(CHECK_DETAIL_REGION_0.id));
DeviceCheckDetail detail = detailRepo.save(unitDetailDoc);
detailIds.add(detail.getId());
// 3-2 构建被查单位的 自查任务 (根据被查单位的级别来区分是县级状态是市级状态)
TaskBto checkedTask = new TaskBto(
CHECK_DETAIL_REGION_0.id,
getUnitDateString(unit, ceVo.getTitle()),
taskBtoCity.getId(),
addNode(taskBtoCity.getNodeIdDetail(), taskBtoCity.getId()),
CONFIRM_CHECK_DETAIL.id,
detail.getId(),
// 将task给到市的每个单位
unit.getUnitId(),
0);
checkedTask.setCustomInfo("manual");
taskService.start(checkedTask);
}
} }
// 3-4 (before) 核查时对市县进行核查的逻辑,需判断是否勾选了市级单位
if(!isExam && (checkedUnits.stream().anyMatch(o -> o.getLevel() == 2))) {
// 找到市相关的单位,包括市不本级以及下级单位
List<Units> units = checkedUnits.stream().filter(o -> o.getLevel() == 2).collect(toList());
for (Units unit : units) {
List<Integer> findCity = unitsService.findBySubordinateAll(unit.getUnitId()).stream().map(Units::getUnitId).collect(toList());
// 过滤无装备的单位
List<Integer> existUnits = checkUnitService.findExistDevice(findCity);
if (existUnits.size() == 0) {
break;
} }
// 1.创建市的统计账单及任务
// 3-1-1 创建市里的的统计账单
DeviceCheckStat ciyStat = new DeviceCheckStat(ceVo.getTitle(), "", LocalDateTime.now(), ceVo.getEndTime().atStartOfDay(),
"[]", 0, 0, ceVo.getDetail().get(0).getRemark());
ciyStat.setCheckType(CheckType.CT_CHECK);
DeviceCheckStat cityStatSave = statRepo.save(ciyStat);
// 3-1-2 构建市单位的任务
TaskBto taskBtoCity = new Task(CHECK_EXAM_STAT_0.id,
getUnitDateString(startUnit, ceVo.getTitle()),
cityStatTask.getId(), ".0.", CONFIRM_CHECK_STAT.id, cityStatSave.getId(),
unit.getUnitId()).parse2Bto();
taskBtoCity.setCustomInfo("check");
taskBtoCity.getInvolveUserIdList().add(currentUserId);
// 检查变为待办
taskBtoCity.getInvolveUserIdList().add(0);
taskBtoCity.setCurrentPoint(1);
taskBtoCity = taskService.start(taskBtoCity);
// 2.创建单位的详情及任务
// 3-1-3 构建市单位的自查账单及任务
List<Units> unitsQu = unitsRepo.findAllById(existUnits);
for (Units qu : unitsQu) {
DeviceCheckDetail unitDetailDoc = DeviceCheckDetail.EmptyWithChecker(
ceVo.getDetail().get(0).getRemark(),
ceVo.getTitle() + "%^&" + "市级单位检查",
0, 0, 0, 0,
qu.getName(),
qu.getUnitId(),
devInLib.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));
DeviceCheckDetail detail = detailRepo.save(unitDetailDoc);
detailIds.add(detail.getId());
// 3-2 构建被查单位的 自查任务 (根据被查单位的级别来区分是县级状态是市级状态)
TaskBto checkedTask = new TaskBto(
qu.getLevel() == 2 ? CHECK_DETAIL_CITY_0.id : CHECK_DETAIL_REGION_0.id,
getUnitDateString(qu, ceVo.getTitle()),
taskBtoCity.getId(),
addNode(taskBtoCity.getNodeIdDetail(), taskBtoCity.getId()),
CONFIRM_CHECK_DETAIL.id,
detail.getId(),
// 将task给到市的每个单位
qu.getUnitId(),
0);
checkedTask.setCustomInfo("manual");
taskService.start(checkedTask);
}
}
}
// 3-4 创建区单位的账单及详情,只有市发起检查时才触发这里的代码
if (checkTypeNum(ceVo.getDetail().get(0).getUnitIds(), 4) && isExam) {
// a 构建区单位的自查账单及任务
List<Units> unitsEs = checkedUnits.stream().filter(o -> o.getLevel() == 3).collect(toList());
for (Units unit : unitsEs) {
DeviceCheckDetail unitDetailDoc = DeviceCheckDetail.EmptyWithChecker(
ceVo.getDetail().get(0).getRemark(),
ceVo.getTitle() + "%^&" + "区级单位检查",
0, 0, 0, 0,
unit.getName(),
unit.getUnitId(),
devInLib.getOrDefault(unit.getName(), new ArrayList<>()),
devNotInLib.getOrDefault(unit.getName(), new ArrayList<>()));
unitDetailDoc.setVar2(String.valueOf(CHECK_DETAIL_REGION_0.id));
DeviceCheckDetail detail = detailRepo.save(unitDetailDoc);
detailIds.add(detail.getId());
// 3-2 构建被查单位的 自查任务 (根据被查单位的级别来区分是县级状态是市级状态)
TaskBto checkedTask = new TaskBto(
CHECK_DETAIL_REGION_0.id,
getUnitDateString(unit, ceVo.getTitle()),
cityStatTask.getId(),
addNode(cityStatTask.getNodeIdDetail(), cityStatTask.getId()),
CONFIRM_CHECK_DETAIL.id,
detail.getId(),
// 将task给到市的每个单位
unit.getUnitId(),
0);
checkedTask.setCustomInfo("manual");
taskService.start(checkedTask);
}
}
// 4. 构建直属单位的统计,只有省会发起直属单位的检查/核查,不涉及转发,因此examStatId = 0,且unit 的level = 1,type =1时才会触发
// if (ceVo.getExamStatId() == 0 && startUnit.getType() == 1 && startUnit.getLevel() == 1) {
//
// DeviceCheckStat escrowStat = initStatData(
// checkedUnitNames,
// ceVo.getTitle(),
// groupUserString,
// 0,
// 0,
// startUnit.getName(),
// checkedUnits,
// ceVo.getEndTime().atStartOfDay()
// );
// escrowStat.setSubtitle("省直属单位待核查装备统计单");
// DeviceCheckStat esSaveStat = statRepo.save(escrowStat);
//
// TaskBto esTaskBto;
//
// esTaskBto = new Task(CHECK_EXAM_STAT_0.id,
// "[省直属单位]" + ceVo.getTitle(),
// cityStatTask.getId(), ".0.", CONFIRM_CHECK_STAT.id, esSaveStat.getId(), startUnitId)
// .parse2Bto();
//
// esTaskBto.setCustomInfo("exam");
// esTaskBto.getInvolveUserIdList().add(currentUserId);
// // 检查变为待办
// esTaskBto.getInvolveUserIdList().add(0);
// esTaskBto.setCurrentPoint(1);
// TaskBto start = taskService.start(esTaskBto);
//
// Optional<List<Task>> esTask = taskRepo.findAllByOwnUnitInAndParentTaskId(esIds, cityStatTask.getId());
// if (esTask.isPresent()) {
// List<Task> tasks = esTask.get();
// tasks.forEach(o -> o.setParentTaskId(start.getId()));
// taskRepo.saveAll(tasks);
// }
// }
// 5. 重新设置并保存统计账单 // 5. 重新设置并保存统计账单
statRepo.save(provinceCheckStat); statRepo.save(provinceCheckStat);
log.info("[核查模块] {}单位成功发起对 {} 单位的检查任务分发", startUnit.getName(), checkedUnitNames); log.info("[核查模块] {}单位成功发起对 {} 单位的检查任务分发", startUnit.getName(), checkedUnitNames);
...@@ -385,10 +608,11 @@ public class ExamController { ...@@ -385,10 +608,11 @@ public class ExamController {
/** /**
* 用于判断是否生成stat统计任务 * 用于判断是否生成stat统计任务
*
* @param unitIds 传入的单位id * @param unitIds 传入的单位id
* @return map * @return map
*/ */
private boolean checkTypeNum(List<Integer> unitIds,Integer tag) { private boolean checkTypeNum(List<Integer> unitIds, Integer tag) {
boolean rs = false; boolean rs = false;
// tag: 0_处理核查时的省局,1_处理检查时的省局 2_处理省直属 3_处理市 // tag: 0_处理核查时的省局,1_处理检查时的省局 2_处理省直属 3_处理市
...@@ -412,12 +636,20 @@ public class ExamController { ...@@ -412,12 +636,20 @@ public class ExamController {
} }
break; break;
case 2: case 2:
if(units.stream().anyMatch(o -> o.getEscrow() == 1)) { // 检查是否有省直属单位
if (units.stream().anyMatch(o -> o.getEscrow() == 1)) {
rs = true; rs = true;
} }
break; break;
case 3: case 3:
if(units.stream().anyMatch(o -> o.getLevel() == 2)) { // 检查是否有市单位
if (units.stream().anyMatch(o -> o.getLevel() == 2)) {
rs = true;
}
break;
case 4:
// 检查是否有区单位
if (units.stream().anyMatch(o -> o.getLevel() == 3)) {
rs = true; rs = true;
} }
break; break;
......
...@@ -4,6 +4,7 @@ import com.tykj.dev.device.confirmcheck.common.CheckType; ...@@ -4,6 +4,7 @@ import com.tykj.dev.device.confirmcheck.common.CheckType;
import com.tykj.dev.misc.base.BaseEntity; import com.tykj.dev.misc.base.BaseEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
......
...@@ -3,7 +3,10 @@ package com.tykj.dev.device.confirmcheck.entity.vo; ...@@ -3,7 +3,10 @@ package com.tykj.dev.device.confirmcheck.entity.vo;
import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List; import java.util.List;
...@@ -16,6 +19,9 @@ import java.util.List; ...@@ -16,6 +19,9 @@ import java.util.List;
*/ */
@Data @Data
@ApiModel("检查发起对象") @ApiModel("检查发起对象")
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CheckExamVo { public class CheckExamVo {
@ApiModelProperty(name = "业务标题", example = "浙江省手动核查测试") @ApiModelProperty(name = "业务标题", example = "浙江省手动核查测试")
......
...@@ -31,6 +31,11 @@ public interface CheckUnitService { ...@@ -31,6 +31,11 @@ public interface CheckUnitService {
*/ */
List<Integer> findUnExistDevice(List<Integer> ids); List<Integer> findUnExistDevice(List<Integer> ids);
/**
* 找出给定单位有装备的单位id
* @param ids list of ids
* @return object
*/
List<Integer> findExistDevice(List<Integer> ids); List<Integer> findExistDevice(List<Integer> ids);
/** /**
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论