提交 09a3b44c authored 作者: Matrix's avatar Matrix

[核查模块] 修复BUG

上级 ab2d5952
...@@ -16,11 +16,11 @@ public enum CheckType { ...@@ -16,11 +16,11 @@ public enum CheckType {
/** /**
* 自动核查 * 自动核查
*/ */
AUTO_CHECK(1, "自动核查"), CT_CHECK(1, "核查"),
/** /**
* 手动核查 * 手动核查
*/ */
MANUAL_CHECK(2, "手动核查"); CT_EXAM(2, "检查");
private final Integer id; private final Integer id;
private final String name; private final String name;
......
...@@ -113,7 +113,7 @@ public class DeviceCheckController { ...@@ -113,7 +113,7 @@ public class DeviceCheckController {
@ApiOperation(value = "查询默认的可以被核查单位的清单(省本直,省直属,市局)") @ApiOperation(value = "查询默认的可以被核查单位的清单(省本直,省直属,市局)")
public ResponseEntity findDefaultUnits() { public ResponseEntity findDefaultUnits() {
return ResponseEntity.ok(new ResultObj<>(unitsRepo.findAllByLevelIn(Lists.newArrayList(0, 1, 2)))); return ResponseEntity.ok(new ResultObj<>(unitsRepo.findAllByTypeNotIn(Lists.newArrayList(3))));
} }
@ApiOperation(value = "根据id查询核查统计数据", notes = "可以通过这个接口查询核查统计数据") @ApiOperation(value = "根据id查询核查统计数据", notes = "可以通过这个接口查询核查统计数据")
...@@ -216,6 +216,7 @@ public class DeviceCheckController { ...@@ -216,6 +216,7 @@ public class DeviceCheckController {
// 构建省的统计账单,所有的checkedUnits都要被包含到统计中去 // 构建省的统计账单,所有的checkedUnits都要被包含到统计中去
DeviceCheckStat provinceCheckStat = initStatData(ccVO.getTitle(), ccVO.getRemark(), 0, 0, startUnit.getName(), checkedUnits, ccVO.getEndTime().atStartOfDay()); 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(); Integer statId = statRepo.save(provinceCheckStat).getId();
List<CheckDeviceStatVo> deviceStatVos = Arrays.stream( List<CheckDeviceStatVo> deviceStatVos = Arrays.stream(
Objects.requireNonNull(JacksonUtil.readValue(provinceCheckStat.getStatInfo(), CheckDeviceStatVo[].class))) Objects.requireNonNull(JacksonUtil.readValue(provinceCheckStat.getStatInfo(), CheckDeviceStatVo[].class)))
...@@ -241,6 +242,7 @@ public class DeviceCheckController { ...@@ -241,6 +242,7 @@ public class DeviceCheckController {
//构建市的统计账单 //构建市的统计账单
String cityTitle = unit.getName() + "检查统计"; String cityTitle = unit.getName() + "检查统计";
DeviceCheckStat cityCheckStat = initStatData(cityTitle, ccVO.getRemark(), 0, 0, unit.getName(), Collections.emptyList(), ccVO.getEndTime().atStartOfDay()); 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(); Integer cityStatId = statRepo.save(cityCheckStat).getId();
log.info("[核查模块] {} 检查统计账单构建完毕,id 为 {}", unit.getName(), cityStatId); log.info("[核查模块] {} 检查统计账单构建完毕,id 为 {}", unit.getName(), cityStatId);
...@@ -257,7 +259,7 @@ public class DeviceCheckController { ...@@ -257,7 +259,7 @@ public class DeviceCheckController {
// 构建自查任务(levl = 1,2) tpye = 2 // 构建自查任务(levl = 1,2) tpye = 2
List<Units> selfCheckUnits = checkedUnits.stream() List<Units> selfCheckUnits = checkedUnits.stream()
.filter(units -> Arrays.asList(0, 1, 2).contains(units.getLevel()) || units.getType() == 2) .filter(units -> Arrays.asList(0, 1).contains(units.getLevel()) || units.getType() == 2)
.collect(toList()); .collect(toList());
// 获取所有在库装备与不在库装备 // 获取所有在库装备与不在库装备
...@@ -276,7 +278,7 @@ public class DeviceCheckController { ...@@ -276,7 +278,7 @@ public class DeviceCheckController {
//核查组成员名称用当前登录用户 //核查组成员名称用当前登录用户
String names = loginUser.getName(); String names = loginUser.getName();
// 3-1 构建被查单位的 自查账单 // 3-1 构建被查单位的 自查账单
DeviceCheckDetail unitDetailDoc = DeviceCheckDetail.EmptyWithChecker(names + "|" + "默认备注", "默认标题", 0, 0, 0, 0, unit.getName(), devInLib.getOrDefault(unit.getName(), new ArrayList<>()), devNotInLib.getOrDefault(unit.getName(), new ArrayList<>())); DeviceCheckDetail unitDetailDoc = DeviceCheckDetail.EmptyWithChecker(names + "|" + "默认备注", "", 0, 0, 0, 0, unit.getName(), devInLib.getOrDefault(unit.getName(), new ArrayList<>()), devNotInLib.getOrDefault(unit.getName(), new ArrayList<>()));
DeviceCheckDetail detail = detailRepo.save(unitDetailDoc); DeviceCheckDetail detail = detailRepo.save(unitDetailDoc);
// 将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();
...@@ -298,6 +300,7 @@ public class DeviceCheckController { ...@@ -298,6 +300,7 @@ public class DeviceCheckController {
fatherId = provStatTask.getId(); fatherId = provStatTask.getId();
} }
//处理ownUnit的代码 - 用于处理没有账号的单位的可见性
Integer ownUnitId = 0; Integer ownUnitId = 0;
if (unit.getType() == 2) { if (unit.getType() == 2) {
ownUnitId = 1; ownUnitId = 1;
...@@ -330,16 +333,25 @@ public class DeviceCheckController { ...@@ -330,16 +333,25 @@ public class DeviceCheckController {
Integer startUnitId = ceVo.getUnitId(); Integer startUnitId = ceVo.getUnitId();
Units startUnit = unitsRepo.findById(startUnitId).get(); Units startUnit = unitsRepo.findById(startUnitId).get();
List<CheckExamDetailVo> examDetailVos = ceVo.getDetail(); List<CheckExamDetailVo> examDetailVos = ceVo.getDetail();
Integer uAreaId = auService.findOne(AuExample.UnitId, startUnitId).getId();
//如果是create检查,那么不需要添加自己单位的自查,如果是update检查,那么需要添加单位的自查
if (ceVo.getExamStatId() != 0) {
//update
log.info("[核查模块] update核查,自动添加id = {}市的自核查任务", startUnitId);
examDetailVos.add(examDetailVos.get(0).copy(uAreaId, "市自查"));
}
List<String> tmpString = new ArrayList<>(); List<String> tmpString = new ArrayList<>();
for (CheckExamDetailVo vo : examDetailVos) { for (CheckExamDetailVo vo : examDetailVos) {
tmpString.add(vo.getGroupName() + "," + vo.getUserNames().stream().collect(joining(","))); tmpString.add(vo.getGroupName() + "," + vo.getUserNames().stream().collect(joining(",")));
} }
String groupUserString = tmpString.stream().collect(joining("|")); String groupUserString = tmpString.stream().collect(joining("|"));
List<Integer> areaIds = examDetailVos.stream().map(CheckExamDetailVo::getAreaId).collect(toList()); List<Integer> areaIds = examDetailVos.stream().map(CheckExamDetailVo::getAreaId).collect(toList());
List<Units> checkedUnits = unitsRepo.findByAreaIdIn(areaIds); List<Units> checkedUnits = unitsRepo.findByAreaIdIn(areaIds);
List<String> checkedUnitNames = checkedUnits.stream().map(Units::getName).collect(toList()); List<String> checkedUnitNames = checkedUnits.stream().map(Units::getName).collect(toList());
log.info("[核查模块]发起手动核查,发起单位为{},被查单位为{}", startUnit.getName(), checkedUnitNames);
// 2-1 构建发起单位的 统计账单 // 2-1 构建发起单位的 统计账单
DeviceCheckStat provinceCheckStat; DeviceCheckStat provinceCheckStat;
//根据examStatId来判断是update还是create 此时初始化的为指定检查区域的数据 //根据examStatId来判断是update还是create 此时初始化的为指定检查区域的数据
...@@ -352,6 +364,11 @@ public class DeviceCheckController { ...@@ -352,6 +364,11 @@ public class DeviceCheckController {
} else { } else {
provinceCheckStat = initCheckStat; provinceCheckStat = initCheckStat;
} }
log.info("[核查模块]发起手动核查,发起单位为{},被查单位为{}", startUnit.getName(), checkedUnitNames);
provinceCheckStat.setCheckType(CheckType.CT_EXAM);
Integer statId = statRepo.save(provinceCheckStat).getId(); Integer statId = statRepo.save(provinceCheckStat).getId();
List<CheckDeviceStatVo> deviceStatVos = Arrays.stream( List<CheckDeviceStatVo> deviceStatVos = Arrays.stream(
Objects.requireNonNull(JacksonUtil.readValue(provinceCheckStat.getStatInfo(), CheckDeviceStatVo[].class))) Objects.requireNonNull(JacksonUtil.readValue(provinceCheckStat.getStatInfo(), CheckDeviceStatVo[].class)))
...@@ -457,8 +474,10 @@ public class DeviceCheckController { ...@@ -457,8 +474,10 @@ public class DeviceCheckController {
Integer fatherId = currentTask.getParentTaskId(); Integer fatherId = currentTask.getParentTaskId();
Task cityTask = taskRepo.findById(fatherId).get(); Task cityTask = taskRepo.findById(fatherId).get();
Integer cityStatId = cityTask.getBillId(); Integer cityStatId = cityTask.getBillId();
Integer cityId = currentTask.getOwnUnit();
AreaUnit areaUnit = auService.findOne(AuExample.UnitId, cityId); //这里是为了修正特殊的直属单位改为从detail里拿单位(城市)名
String unitName = detailRepo.findById(id).get().getCheckUnit();
AreaUnit areaUnit = auService.findOne(AuExample.UnitName, unitName);
String cityName = areaUnit.getName(); String cityName = areaUnit.getName();
DeviceCheckStat cityStat = statRepo.findById(cityStatId).get(); DeviceCheckStat cityStat = statRepo.findById(cityStatId).get();
...@@ -679,7 +698,7 @@ public class DeviceCheckController { ...@@ -679,7 +698,7 @@ public class DeviceCheckController {
//市统计的办结 -> 开启对应市的待办任务 //市统计的办结 -> 开启对应市的待办任务
String areaName = auService.findOne(AuExample.UnitId, currentTask.getOwnUnit()).getName(); String areaName = auService.findOne(AuExample.UnitId, currentTask.getOwnUnit()).getName();
Integer provId = areaRepo.findAreasByType(1).get(0).getId(); Integer provId = areaRepo.findAreasByType(1).get(0).getId();
TaskBto cityDoneTask = new TaskBto(CHECK_STAT_1.id, areaName + "统计确认待办任务", 0, ".", CONFIRM_CHECK_STAT.id, statId, provId, 0); TaskBto cityDoneTask = new TaskBto(CHECK_STAT_1.id, areaName + "统计确认待办任务", parentTaskId, ".", CONFIRM_CHECK_STAT.id, statId, provId, 0);
cityDoneTask = taskService.start(cityDoneTask); cityDoneTask = taskService.start(cityDoneTask);
log.info("[核查模块] 统计确认待办任务生成成功, id为 : {}", cityDoneTask.getId()); log.info("[核查模块] 统计确认待办任务生成成功, id为 : {}", cityDoneTask.getId());
} }
...@@ -694,7 +713,7 @@ public class DeviceCheckController { ...@@ -694,7 +713,7 @@ public class DeviceCheckController {
* @param currentTask 当前任务 * @param currentTask 当前任务
* @param currentDetail 需要汇总的详情核查数据对象 * @param currentDetail 需要汇总的详情核查数据对象
*/ */
private void summaryDetail(TaskBto currentTask, DeviceCheckDetail currentDetail) { private void summaryDetail(TaskBto currentTask, DeviceCheckDetail currentDetail) {
log.info("[核查模块] 正在进行数据汇总"); log.info("[核查模块] 正在进行数据汇总");
// 先找到汇总地区的账单id 查询当前detail task 的 父级TASK // 先找到汇总地区的账单id 查询当前detail task 的 父级TASK
Integer fatherTaskId = currentTask.getParentTaskId(); Integer fatherTaskId = currentTask.getParentTaskId();
...@@ -702,7 +721,7 @@ public class DeviceCheckController { ...@@ -702,7 +721,7 @@ public class DeviceCheckController {
// 如果是第一个区域(通过判断所有的child节点没有结束),替换掉父级的统计,如果不是第一个区域,则累加 // 如果是第一个区域(通过判断所有的child节点没有结束),替换掉父级的统计,如果不是第一个区域,则累加
boolean firstArea = taskService.TaskTreeIsStart(fatherTaskId, false); boolean firstArea = taskService.TaskTreeIsStart(fatherTaskId, false);
List<CheckDeviceStatVo> addVos = parseStatString2Vo(currentTask, currentDetail.getCheckDetail()); List<CheckDeviceStatVo> addVos = parseStatString2Vo(currentTask, currentDetail);
CheckStatVo cityStatVo = transUtil.checkStatDo2Vo(statRepo.findById(statId).get()); CheckStatVo cityStatVo = transUtil.checkStatDo2Vo(statRepo.findById(statId).get());
//addVos在内部reduce一次 //addVos在内部reduce一次
addVos = addVos.stream() addVos = addVos.stream()
...@@ -712,7 +731,6 @@ public class DeviceCheckController { ...@@ -712,7 +731,6 @@ public class DeviceCheckController {
.map(v -> v.stream().reduce(CheckDeviceStatVo::reduce).get()) .map(v -> v.stream().reduce(CheckDeviceStatVo::reduce).get())
.collect(toList()); .collect(toList());
//直接替换 //直接替换
cityStatVo = cityStatVo.cleanReduce(addVos); cityStatVo = cityStatVo.cleanReduce(addVos);
...@@ -722,9 +740,11 @@ public class DeviceCheckController { ...@@ -722,9 +740,11 @@ public class DeviceCheckController {
String areaName = areaRepo.findById(areaId).orElse(new Area(0, "省直属", 9999, "9999", 0, "")) String areaName = areaRepo.findById(areaId).orElse(new Area(0, "省直属", 9999, "9999", 0, ""))
.getName(); .getName();
// 完结任务,设置detailId
for (CheckDeviceStatVo v : cityStatVo.getDeviceStatVoList()) { for (CheckDeviceStatVo v : cityStatVo.getDeviceStatVoList()) {
for (CheckAreaStatVo v1 : v.getAreaStatList()) { for (CheckAreaStatVo v1 : v.getAreaStatList()) {
if (v1.getAreaName().equals(areaName)) { if (v1.getAreaName().equals(areaName)) {
v1.setAreaDetailId(currentDetail.getId());
v1.end(); v1.end();
} }
} }
...@@ -762,15 +782,15 @@ public class DeviceCheckController { ...@@ -762,15 +782,15 @@ public class DeviceCheckController {
return GlobalMap.getStatusEnumMap().get(currentStatusId - remainder); return GlobalMap.getStatusEnumMap().get(currentStatusId - remainder);
} }
public List<CheckDeviceStatVo> parseStatString2Vo(TaskBto task, String statString) { public List<CheckDeviceStatVo> parseStatString2Vo(TaskBto task, DeviceCheckDetail detail) {
String statString = detail.getCheckDetail();
List<CheckDeviceStatVo> statVoList = new ArrayList<>(); List<CheckDeviceStatVo> statVoList = new ArrayList<>();
//分为 id - status 的数组 其中status 0缺失 1无误 2新增 3不在库 //分为 id - status 的数组 其中status 0缺失 1无误 2新增 3不在库
String[] statArray = statString.split(","); String[] statArray = statString.split(",");
//将 id - status 转化为 model - count - status(只统计新增和无误的作为数量) //将 id - status 转化为 model - count - status(只统计新增和无误的作为数量)
// 根据unitId 查到 areaId 根据 areaId 查询到 areaName // 根这里uuid可以从detail里拿,根据unitId 查到 areaId 根据 areaId 查询到 areaName
int areaId = unitsRepo.findAreaId(task.getOwnUnit()); String areaName = auService.findOne(AuExample.UnitName, detail.getCheckUnit()).getName();
String areaName = areaRepo.findNameById(areaId);
for (String s : statArray) { for (String s : statArray) {
String[] device = s.split("-"); String[] device = s.split("-");
...@@ -786,9 +806,13 @@ public class DeviceCheckController { ...@@ -786,9 +806,13 @@ public class DeviceCheckController {
CheckAreaStatVo checkAreaStatVo; CheckAreaStatVo checkAreaStatVo;
// proofResult 9=(1,1) 1=(2,0) other=(2,1) // proofResult 9=(1,1) 1=(2,0) other=(2,1)
if (proofResult == 9) { if (proofResult == 9) {
checkAreaStatVo = new CheckAreaStatVo(areaName, 1, 1, 1, 1, statId, detailId); checkAreaStatVo = new CheckAreaStatVo(areaName, 1, 1, 1, 1, statId, detailId);
} else if (proofResult == 1) { } else if (proofResult ==3){
//跳过非在库的统计
continue;
}else if (proofResult == 1) {
checkAreaStatVo = new CheckAreaStatVo(areaName, 1, 1, 2, 0, statId, detailId); checkAreaStatVo = new CheckAreaStatVo(areaName, 1, 1, 2, 0, statId, detailId);
} else { } else {
checkAreaStatVo = new CheckAreaStatVo(areaName, 1, 1, 2, 1, statId, detailId); checkAreaStatVo = new CheckAreaStatVo(areaName, 1, 1, 2, 1, statId, detailId);
...@@ -798,8 +822,6 @@ public class DeviceCheckController { ...@@ -798,8 +822,6 @@ public class DeviceCheckController {
areaStatVoList.add(checkAreaStatVo); areaStatVoList.add(checkAreaStatVo);
statVoList.add(new CheckDeviceStatVo(checkDevice.getModel(), checkDevice.getName(), 1, areaStatVoList)); statVoList.add(new CheckDeviceStatVo(checkDevice.getModel(), checkDevice.getName(), 1, areaStatVoList));
//这里直接跳过非在库装备
break;
} }
return statVoList; return statVoList;
...@@ -829,7 +851,7 @@ public class DeviceCheckController { ...@@ -829,7 +851,7 @@ public class DeviceCheckController {
.values(); .values();
return new DeviceCheckStat( return new DeviceCheckStat(
CheckType.MANUAL_CHECK, CheckType.CT_EXAM,
title, title,
startUnitName + "待核查装备统计单", startUnitName + "待核查装备统计单",
JacksonUtil.toJSon(new ArrayList<>(statVos)), JacksonUtil.toJSon(new ArrayList<>(statVos)),
...@@ -884,7 +906,7 @@ public class DeviceCheckController { ...@@ -884,7 +906,7 @@ public class DeviceCheckController {
// } // }
return new DeviceCheckStat( return new DeviceCheckStat(
CheckType.MANUAL_CHECK, CheckType.CT_EXAM,
title, title,
startUnitName + "待核查装备统计单", startUnitName + "待核查装备统计单",
JacksonUtil.toJSon(new ArrayList<>(statVos)), JacksonUtil.toJSon(new ArrayList<>(statVos)),
......
...@@ -9,9 +9,7 @@ import lombok.EqualsAndHashCode; ...@@ -9,9 +9,7 @@ import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.SQLDelete;
import javax.persistence.Column; import javax.persistence.*;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
...@@ -57,10 +55,11 @@ public class DeviceCheckStat extends BaseEntity { ...@@ -57,10 +55,11 @@ public class DeviceCheckStat extends BaseEntity {
private String statInfo; private String statInfo;
/** /**
* 检查类型,数据库里的数据结构是int类型,其中1为自动,2为手动 * 检查类型,数据库里的数据结构是int类型,其中1为核查,2为检查
* *
* @see com.tykj.dev.device.confirmcheck.common.CheckTypeConvert * @see com.tykj.dev.device.confirmcheck.common.CheckTypeConvert
*/ */
@Enumerated(EnumType.ORDINAL)
private CheckType checkType; private CheckType checkType;
/** /**
......
...@@ -70,7 +70,9 @@ public class CheckAreaStatVo implements Cloneable { ...@@ -70,7 +70,9 @@ public class CheckAreaStatVo implements Cloneable {
} }
public void start() { public void start() {
if (this.comProgress !=2){
this.comProgress = 1; this.comProgress = 1;
}
} }
public void end() { public void end() {
...@@ -120,12 +122,13 @@ public class CheckAreaStatVo implements Cloneable { ...@@ -120,12 +122,13 @@ public class CheckAreaStatVo implements Cloneable {
if (!this.areaName.equals(other.areaName) || this.areaStatId != other.areaStatId) { if (!this.areaName.equals(other.areaName) || this.areaStatId != other.areaStatId) {
//初始化账单的话则不用抛出异常,将other的detailId赋予即可 //初始化账单的话则不用抛出异常,将other的detailId赋予即可
if (this.areaDetailId == 0) { if (this.areaDetailId == 0) {
this.areaDetailId = other.areaStatId; this.areaDetailId = other.areaDetailId;
// this.areaStatId = other.areaStatId;
} else { } else {
throw new IllegalArgumentException(String.format( throw new IllegalArgumentException(String.format(
"要合并的两个地区统计数据的areaName与areaDetailId必须保持一致," + "要合并的两个地区统计数据的areaName与areaDetailId必须保持一致," +
"你提供的分别是areaName = %s 与 %s , areaDetailId = %d 与 %d %n", "你提供的分别是areaName = %s 与 %s , areaDetailId = %d 与 %d %n",
this.areaName, other.areaName, this.areaStatId, other.areaStatId)); this.areaName, other.areaName, this.areaDetailId, other.areaDetailId));
} }
} }
......
...@@ -134,7 +134,7 @@ public class CheckDeviceStatVo implements Cloneable { ...@@ -134,7 +134,7 @@ public class CheckDeviceStatVo implements Cloneable {
* @return 合并后的装备统计信息对相关,基于深拷贝 * @return 合并后的装备统计信息对相关,基于深拷贝
* @throws IllegalArgumentException 累加的统计信息对象必须是相同型号与名字的装备 * @throws IllegalArgumentException 累加的统计信息对象必须是相同型号与名字的装备
*/ */
public CheckDeviceStatVo cleanReduce(CheckDeviceStatVo other) { public CheckDeviceStatVo cleanReduce(CheckDeviceStatVo other) {
boolean flag = deviceModel.equals(other.getDeviceModel()) && deviceName.equals(other.getDeviceName()); boolean flag = deviceModel.equals(other.getDeviceModel()) && deviceName.equals(other.getDeviceName());
if (!flag) { if (!flag) {
throw new IllegalArgumentException("累加的统计信息对象必须是相同型号且名称相同的装备"); throw new IllegalArgumentException("累加的统计信息对象必须是相同型号且名称相同的装备");
......
...@@ -2,7 +2,9 @@ package com.tykj.dev.device.confirmcheck.entity.vo; ...@@ -2,7 +2,9 @@ package com.tykj.dev.device.confirmcheck.entity.vo;
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.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List; import java.util.List;
...@@ -14,6 +16,8 @@ import java.util.List; ...@@ -14,6 +16,8 @@ import java.util.List;
*/ */
@Data @Data
@ApiModel("核查发起细节") @ApiModel("核查发起细节")
@AllArgsConstructor
@NoArgsConstructor
public class CheckExamDetailVo { public class CheckExamDetailVo {
@ApiModelProperty(name = "核查组名称") @ApiModelProperty(name = "核查组名称")
...@@ -27,4 +31,8 @@ public class CheckExamDetailVo { ...@@ -27,4 +31,8 @@ public class CheckExamDetailVo {
@ApiModelProperty(name = "备注") @ApiModelProperty(name = "备注")
private String remark; private String remark;
public CheckExamDetailVo copy(Integer areaId,String remark) {
return new CheckExamDetailVo(this.groupName, this.userNames, areaId, remark);
}
} }
...@@ -42,5 +42,8 @@ public class CheckStatTableVo { ...@@ -42,5 +42,8 @@ public class CheckStatTableVo {
@ApiModelProperty("完成情况") @ApiModelProperty("完成情况")
private String completion; private String completion;
@ApiModelProperty("检查类型,0-核查,1-检查")
private Integer checkType;
private String queryField; private String queryField;
} }
...@@ -20,6 +20,7 @@ import com.tykj.dev.device.confirmcheck.service.ConfirmCheckService; ...@@ -20,6 +20,7 @@ import com.tykj.dev.device.confirmcheck.service.ConfirmCheckService;
import com.tykj.dev.device.confirmcheck.utils.ObjTransUtil; import com.tykj.dev.device.confirmcheck.utils.ObjTransUtil;
import com.tykj.dev.device.library.repository.DeviceLibraryDao; import com.tykj.dev.device.library.repository.DeviceLibraryDao;
import com.tykj.dev.device.library.subject.domin.DeviceLibrary; import com.tykj.dev.device.library.subject.domin.DeviceLibrary;
import com.tykj.dev.device.task.repository.TaskDao;
import com.tykj.dev.device.task.service.TaskService; import com.tykj.dev.device.task.service.TaskService;
import com.tykj.dev.device.task.subject.bto.TaskBto; import com.tykj.dev.device.task.subject.bto.TaskBto;
import com.tykj.dev.device.task.subject.domin.Task; import com.tykj.dev.device.task.subject.domin.Task;
...@@ -135,7 +136,7 @@ public class ConfirmCheckServiceImpl implements ConfirmCheckService, CommandLine ...@@ -135,7 +136,7 @@ public class ConfirmCheckServiceImpl implements ConfirmCheckService, CommandLine
// 构建省的统计账单 // 构建省的统计账单
DeviceCheckStat provStatDo = new DeviceCheckStat( DeviceCheckStat provStatDo = new DeviceCheckStat(
CheckType.AUTO_CHECK, CheckType.CT_CHECK,
baseTitle + provUnit.getName() + "核查统计单", baseTitle + provUnit.getName() + "核查统计单",
"核查统计单", "核查统计单",
"系统发起的统计|" + provUnit.getName() + "|" + provUnit.getAreaId()); "系统发起的统计|" + provUnit.getName() + "|" + provUnit.getAreaId());
...@@ -169,7 +170,7 @@ public class ConfirmCheckServiceImpl implements ConfirmCheckService, CommandLine ...@@ -169,7 +170,7 @@ public class ConfirmCheckServiceImpl implements ConfirmCheckService, CommandLine
// 构建市统账单 // 构建市统账单
DeviceCheckStat cityStatDo = new DeviceCheckStat( DeviceCheckStat cityStatDo = new DeviceCheckStat(
CheckType.AUTO_CHECK, CheckType.CT_CHECK,
baseTitle + cityUnit.getName() + "核查统计单", baseTitle + cityUnit.getName() + "核查统计单",
"核查统计单", "核查统计单",
"系统发起的统计|" + cityUnit.getName() + "|" + cityUnit.getAreaId() "系统发起的统计|" + cityUnit.getName() + "|" + cityUnit.getAreaId()
...@@ -304,10 +305,21 @@ public class ConfirmCheckServiceImpl implements ConfirmCheckService, CommandLine ...@@ -304,10 +305,21 @@ public class ConfirmCheckServiceImpl implements ConfirmCheckService, CommandLine
*/ */
@Override @Override
public Page<CheckStatTableVo> findAllStatTable(CheckBillSelectVo checkBillSelectVo) { public Page<CheckStatTableVo> findAllStatTable(CheckBillSelectVo checkBillSelectVo) {
//过滤出顶级节点
List<TaskBto> topStatList = taskService.findBillType(7);
List<TaskBto> topDetailList = taskService.findBillType(8);
topStatList.addAll(topDetailList);
List<Integer> topIdList = topStatList.stream()
.filter(taskBto -> taskBto.getParentTaskId().equals(0) || taskBto.getParentTaskId() == null)
.map(TaskBto::getBillId)
.collect(toList());
List<CheckStatTableVo> tableVos = statDao.findAll(checkBillSelectVo.getPageable().getSort()).stream() List<CheckStatTableVo> tableVos = statDao.findAll(checkBillSelectVo.getPageable().getSort()).stream()
.filter(deviceCheckStat -> !"[]".equals(deviceCheckStat.getStatInfo())) .filter(deviceCheckStat -> !"[]".equals(deviceCheckStat.getStatInfo()))
.map(objTransUtil::stat2TableVo) .map(objTransUtil::stat2TableVo)
.filter(vo -> keywordFilter(vo, checkBillSelectVo.getKeyword())) .filter(vo -> keywordFilter(vo, checkBillSelectVo.getKeyword()))
.filter(v->topIdList.contains(v.getId()))
.collect(Collectors.toList()); .collect(Collectors.toList());
return PageUtil.getPerPage(checkBillSelectVo.getPage(),checkBillSelectVo.getSize(),tableVos,checkBillSelectVo.getPageable()); return PageUtil.getPerPage(checkBillSelectVo.getPage(),checkBillSelectVo.getSize(),tableVos,checkBillSelectVo.getPageable());
......
...@@ -155,6 +155,7 @@ public class ObjTransUtil { ...@@ -155,6 +155,7 @@ public class ObjTransUtil {
checkUserNames, checkUserNames,
stat.getCreateTime(), stat.getCreateTime(),
completion, completion,
stat.getCheckType().CT_CHECK.getId(),
joiner.toString() joiner.toString()
); );
......
...@@ -18,6 +18,8 @@ public interface UnitsDao extends JpaRepository<Units, Integer>, JpaSpecificatio ...@@ -18,6 +18,8 @@ public interface UnitsDao extends JpaRepository<Units, Integer>, JpaSpecificatio
List<Units> findAllByLevelGreaterThanEqual(Integer level); List<Units> findAllByLevelGreaterThanEqual(Integer level);
List<Units> findAllByTypeNotIn(List<Integer> ids);
List<Units> findByAreaIdIn(List<Integer> areaIds); List<Units> findByAreaIdIn(List<Integer> areaIds);
List<Units> findAllByAreaIdIn(List<Integer> ids); List<Units> findAllByAreaIdIn(List<Integer> ids);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论