Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
device-back
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
device-back
Commits
5018fdc4
提交
5018fdc4
authored
11月 16, 2021
作者:
tykj
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat:检查模块功能变更流程
上级
9985d24c
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
733 行增加
和
101 行删除
+733
-101
CheckController.java
...j/dev/device/confirmcheck/controller/CheckController.java
+388
-0
DeviceCheckController.java
...device/confirmcheck/controller/DeviceCheckController.java
+1
-1
ExamController.java
...kj/dev/device/confirmcheck/controller/ExamController.java
+332
-100
DeviceCheckStat.java
...ev/device/confirmcheck/entity/domain/DeviceCheckStat.java
+1
-0
CheckExamVo.java
...m/tykj/dev/device/confirmcheck/entity/vo/CheckExamVo.java
+6
-0
CheckUnitService.java
...ykj/dev/device/confirmcheck/service/CheckUnitService.java
+5
-0
没有找到文件。
dev-confirmcheck/src/main/java/com/tykj/dev/device/confirmcheck/controller/CheckController.java
0 → 100644
浏览文件 @
5018fdc4
//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 + ".";
// }
//
//}
dev-confirmcheck/src/main/java/com/tykj/dev/device/confirmcheck/controller/DeviceCheckController.java
浏览文件 @
5018fdc4
...
...
@@ -675,7 +675,7 @@ public class DeviceCheckController {
}
@ApiOperation
(
value
=
"发起核查"
,
notes
=
"对指定单位发起核查任务"
)
@PostMapping
(
"/startCheck"
)
@PostMapping
(
"/startCheck
/bak
"
)
public
ResponseEntity
startCheck
(
@RequestBody
CheckCheckVo
ccVO
)
{
// 代管单位id
...
...
dev-confirmcheck/src/main/java/com/tykj/dev/device/confirmcheck/controller/ExamController.java
浏览文件 @
5018fdc4
...
...
@@ -64,7 +64,7 @@ import static java.util.stream.Collectors.*;
@RequestMapping
(
value
=
"/check"
)
@AutoDocument
@Slf4j
@Api
(
tags
=
"核查模块(检查)"
,
description
=
"检查模块"
,
position
=
1
)
@Api
(
tags
=
"核查模块(检查)"
,
description
=
"检查模块"
,
position
=
2
)
public
class
ExamController
{
@Autowired
...
...
@@ -80,6 +80,8 @@ public class ExamController {
private
int
specialDetailId
=
0
;
private
List
<
String
>
specialUnits
=
new
ArrayList
<>();
@Autowired
private
CheckUnitService
checkUnitService
;
@Autowired
private
DeviceCheckLinkDao
linkRepo
;
@Autowired
...
...
@@ -121,9 +123,6 @@ public class ExamController {
@Autowired
private
UnitsService
unitsService
;
@Autowired
private
CheckUnitService
checkUnitService
;
@GetMapping
(
"/escrow/unit"
)
@ApiOperation
(
value
=
"查询所有的代管单位,true_过滤无装备的单位,false_不过滤无装备的单位"
)
public
ResponseEntity
findEscrowUnit
(
@RequestParam
(
defaultValue
=
"false"
)
boolean
filter
)
{
...
...
@@ -148,7 +147,24 @@ public class ExamController {
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记录</>
...
...
@@ -159,7 +175,8 @@ public class ExamController {
*/
@ApiOperation
(
value
=
"发起检查"
,
notes
=
"手动发起核查,需要指定参数"
)
@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
());
...
...
@@ -190,55 +207,39 @@ public class ExamController {
// 2-1 构建发起单位的 统计账单
DeviceCheckStat
provinceCheckStat
;
//根据examStatId来判断是update还是create 此时初始化的为指定检查区域的数据
DeviceCheckStat
initCheckStat
=
initStatData
(
checkedUnitNames
,
ceVo
.
getTitle
(),
groupUserString
,
0
,
0
,
startUnit
.
getName
(),
checkedUnits
,
ceVo
.
getEndTime
().
atStartOfDay
());
if
(
ceVo
.
getExamStatId
()
!=
0
)
{
// 这里是市转发给区的逻辑
DeviceCheckStat
oriCheckStat
=
statRepo
.
findById
(
ceVo
.
getExamStatId
()).
get
();
oriCheckStat
.
setRemark
(
initCheckStat
.
getRemark
());
oriCheckStat
.
setStatInfo
(
initCheckStat
.
getStatInfo
());
provinceCheckStat
=
oriCheckStat
;
}
else
{
DeviceCheckStat
initCheckStat
=
initStatData
(
checkedUnitNames
,
ceVo
.
getTitle
(),
groupUserString
,
0
,
0
,
startUnit
.
getName
(),
checkedUnits
,
ceVo
.
getEndTime
().
atStartOfDay
());
provinceCheckStat
=
initCheckStat
;
}
log
.
info
(
"[核查模块]发起手动检查,发起单位为{},被查单位为{}"
,
startUnit
.
getName
(),
checkedUnitNames
);
provinceCheckStat
.
setCheckType
(
CheckType
.
CT_EXAM
);
provinceCheckStat
.
setCheckType
(
isExam
?
CheckType
.
CT_EXAM
:
CheckType
.
CT_CHECK
);
// statId 该任务为最上级的stat任务,如果是省发起就是省最上级的统计,市发起,则是市最上级的统计
Integer
statId
=
statRepo
.
save
(
provinceCheckStat
).
getId
();
// 2-2 构建发起单位的 统计任务
// 2-2-1 如果是省级账户发起的检查,需要构建省局、省直属、市级的统计任务
// 根据examStatId来判断要不要重新创建任务
Integer
currentUserId
=
authenticationUtils
.
getAuthentication
().
getCurrentUserInfo
().
getUserId
();
TaskBto
cityStatTask
;
if
(
ceVo
.
getExamStatId
()
==
0
)
{
cityStatTask
=
new
Task
(
CHECK_EXAM_STAT_1
.
id
,
getUnitDateString
(
startUnit
,
ceVo
.
getTitle
()),
0
,
".0."
,
CONFIRM_CHECK_STAT
.
id
,
statId
,
startUnitId
)
.
parse2Bto
();
cityStatTask
.
setCustomInfo
(
"exam
"
);
cityStatTask
.
setCustomInfo
(
isExam
?
"exam"
:
"check
"
);
cityStatTask
.
getInvolveUserIdList
().
add
(
currentUserId
);
// 检查变为待办
cityStatTask
.
getInvolveUserIdList
().
add
(
0
);
cityStatTask
.
setCurrentPoint
(
1
);
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
Map
<
String
,
List
<
DeviceLibrary
>>
devInLib
=
dcService
.
getAllDeviceLibraryList
().
stream
()
.
filter
(
d
->
d
.
getLifeStatus
()
==
2
||
d
.
getLifeStatus
()
==
14
)
...
...
@@ -249,103 +250,325 @@ public class ExamController {
.
filter
(
d
->
d
.
getLifeStatus
()
!=
2
&&
d
.
getLifeStatus
()
!=
14
)
.
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
(
names
+
"|"
+
ed
.
getRemark
(),
ceVo
.
getTitle
()
+
"%^&"
+
ed
.
getRemark
()
,
ceVo
.
getDetail
().
get
(
0
)
.
getRemark
(),
ceVo
.
getTitle
()
+
"%^&"
+
"省局单位检查"
,
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
(
initTaskStatusId
));
unitDetailDoc
.
setVar2
(
String
.
valueOf
(
CHECK_DETAIL_CITY_0
.
id
));
DeviceCheckDetail
detail
=
detailRepo
.
save
(
unitDetailDoc
);
detailIds
.
add
(
detail
.
getId
());
// 将id放入统计中去 model -> areaName -> detailId
String
areaName
=
auService
.
findOne
(
AuExample
.
UnitId
,
unit
.
getUnitId
()).
getName
();
// 3-2 构建被查单位的 自查任务 (根据被查单位的级别来区分是县级状态是市级状态)
TaskBto
checkedTask
=
new
TaskBto
(
initTaskStatusI
d
,
CHECK_DETAIL_CITY_0
.
i
d
,
getUnitDateString
(
unit
,
ceVo
.
getTitle
()),
cityStatTask
.
getId
(),
addNode
(
cityStatTask
.
getNodeIdDetail
(),
cityStatTask
.
getId
()),
taskBtoPro
.
getId
(),
addNode
(
taskBtoPro
.
getNodeIdDetail
(),
taskBtoPro
.
getId
()),
CONFIRM_CHECK_DETAIL
.
id
,
detail
.
getId
(),
unit
.
getUnitId
(),
0
);
// checkedTask.setRemark(String.valueOf(CHECK_EXAM_DETAIL_0.id));
checkedTask
.
setCustomInfo
(
"manual"
);
checkedTask
=
taskService
.
start
(
checkedTask
);
desBillMap
.
put
(
detail
.
getId
(),
ed
.
getRemark
());
desMap
.
put
(
checkedTask
.
getId
(),
ed
.
getRemark
());
taskService
.
start
(
checkedTask
);
}
}
// 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时才会触发
if
(
ceVo
.
getExamStatId
()
==
0
&&
startUnit
.
getType
()
==
1
&&
startUnit
.
getLevel
()
==
1
)
{
// 3-1-2 构建省直单位的任务
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
(
checkedUnitNames
,
ceVo
.
getTitle
(),
groupUserString
,
0
,
0
,
startUnit
.
getName
(),
checkedUnits
,
ceVo
.
getEndTime
().
atStartOfDay
()
);
escrowStat
.
setSubtitle
(
"省直属单位待核查装备统计单"
);
DeviceCheckStat
esSaveStat
=
statRepo
.
save
(
escrowStat
);
// 3-1-3 构建省级单位的自查账单及任务
List
<
Units
>
unitsEs
=
checkedUnits
.
stream
().
filter
(
o
->
o
.
getEscrow
()
==
1
).
collect
(
toList
());
TaskBto
esTaskBto
;
for
(
Units
unit
:
unitsEs
)
{
esTaskBto
=
new
Task
(
CHECK_EXAM_STAT_0
.
id
,
"[省直属单位]"
+
ceVo
.
getTitle
(),
cityStatTask
.
getId
(),
".0."
,
CONFIRM_CHECK_STAT
.
id
,
esSaveStat
.
getId
(),
startUnitId
)
.
parse2Bto
();
DeviceCheckDetail
unitDetailDoc
=
DeviceCheckDetail
.
EmptyWithChecker
(
ceVo
.
getDetail
().
get
(
0
).
getRemark
(),
ceVo
.
getTitle
()
+
"%^&"
+
"省直单位检查"
,
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"
);
esTaskBto
.
getInvolveUserIdList
().
add
(
currentUserId
);
// 3-2 构建被查单位的 自查任务 (根据被查单位的级别来区分是县级状态是市级状态)
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
);
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
);
taskBtoCity
.
getInvolveUserIdList
().
add
(
0
);
taskBtoCity
.
setCurrentPoint
(
1
);
taskBtoCity
=
taskService
.
start
(
taskBtoCity
);
// 3-1-3 构建市单位的自查账单及任务
List
<
Units
>
unitsEs
=
checkedUnits
.
stream
().
filter
(
o
->
o
.
getLevel
()
==
2
).
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
()),
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. 重新设置并保存统计账单
statRepo
.
save
(
provinceCheckStat
);
log
.
info
(
"[核查模块] {}单位成功发起对 {} 单位的检查任务分发"
,
startUnit
.
getName
(),
checkedUnitNames
);
...
...
@@ -385,10 +608,11 @@ public class ExamController {
/**
* 用于判断是否生成stat统计任务
*
* @param unitIds 传入的单位id
* @return map
*/
private
boolean
checkTypeNum
(
List
<
Integer
>
unitIds
,
Integer
tag
)
{
private
boolean
checkTypeNum
(
List
<
Integer
>
unitIds
,
Integer
tag
)
{
boolean
rs
=
false
;
// tag: 0_处理核查时的省局,1_处理检查时的省局 2_处理省直属 3_处理市
...
...
@@ -412,12 +636,20 @@ public class ExamController {
}
break
;
case
2
:
if
(
units
.
stream
().
anyMatch
(
o
->
o
.
getEscrow
()
==
1
))
{
// 检查是否有省直属单位
if
(
units
.
stream
().
anyMatch
(
o
->
o
.
getEscrow
()
==
1
))
{
rs
=
true
;
}
break
;
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
;
}
break
;
...
...
dev-confirmcheck/src/main/java/com/tykj/dev/device/confirmcheck/entity/domain/DeviceCheckStat.java
浏览文件 @
5018fdc4
...
...
@@ -4,6 +4,7 @@ import com.tykj.dev.device.confirmcheck.common.CheckType;
import
com.tykj.dev.misc.base.BaseEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
...
...
dev-confirmcheck/src/main/java/com/tykj/dev/device/confirmcheck/entity/vo/CheckExamVo.java
浏览文件 @
5018fdc4
...
...
@@ -3,7 +3,10 @@ package com.tykj.dev.device.confirmcheck.entity.vo;
import
com.alibaba.fastjson.annotation.JSONField
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.time.LocalDate
;
import
java.util.List
;
...
...
@@ -16,6 +19,9 @@ import java.util.List;
*/
@Data
@ApiModel
(
"检查发起对象"
)
@Builder
@AllArgsConstructor
@NoArgsConstructor
public
class
CheckExamVo
{
@ApiModelProperty
(
name
=
"业务标题"
,
example
=
"浙江省手动核查测试"
)
...
...
dev-confirmcheck/src/main/java/com/tykj/dev/device/confirmcheck/service/CheckUnitService.java
浏览文件 @
5018fdc4
...
...
@@ -31,6 +31,11 @@ public interface CheckUnitService {
*/
List
<
Integer
>
findUnExistDevice
(
List
<
Integer
>
ids
);
/**
* 找出给定单位有装备的单位id
* @param ids list of ids
* @return object
*/
List
<
Integer
>
findExistDevice
(
List
<
Integer
>
ids
);
/**
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论