提交 462e5f0f authored 作者: Matrix's avatar Matrix

[核查模块] 增加发起核查功能

上级 518e146d
...@@ -176,16 +176,61 @@ public class DeviceCheckController { ...@@ -176,16 +176,61 @@ public class DeviceCheckController {
} }
@ApiOperation(value = "发起核查", notes = "对指定地区发起核查任务")
@PostMapping("/startCheck")
private ResponseEntity<String> startCheckCheck(@RequestBody CheckCheckVo ccVO) {
//构建省的统计账单
Integer startUnitId = ccVO.getUnitId();
Units startUnit = unitsRepo.findById(startUnitId).get();
List<Units> checkedUnits = unitsRepo.findByAreaIdIn(ccVO.getAreaRange());
List<String> checkedUnitNames = checkedUnits.stream().map(Units::getName).collect(toList());
log.info("[核查模块]发起核查,发起单位为{},被查单位为{}", startUnit.getName(), checkedUnitNames);
DeviceCheckStat provinceCheckStat = initStatData(ccVO.getTitle(), ccVO.getRemark(), 0, 0, startUnit.getName(), checkedUnits);
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_EXAM_STAT_0.id, CONFIRM_CHECK_STAT.name, 0, ".0.", CONFIRM_CHECK_STAT.id, statId, startUnitId)
.parse2Bto();
provStatTask.setCustomInfo("manual");
provStatTask.getInvolveUserIdList().add(authenticationUtils.getAuthentication().getCurrentUserInfo().getUserId());
provStatTask.getInvolveUserIdList().add(-1);
provStatTask.setCurrentPoint(1);
provStatTask = taskService.start(provStatTask);
//构建市的检查任务
for (Units unit : checkedUnits) {
//构建市的统计账单
String cityTitle = unit.getName() + "检查统计";
DeviceCheckStat cityCheckStat = initStatData(cityTitle, ccVO.getRemark(), 0, 0, unit.getName(), Collections.emptyList());
Integer cityStatId = statRepo.save(cityCheckStat).getId();
log.info("[核查模块] {} 检查统计账单构建完毕,id 为 {}", unit.getName(), cityStatId);
// 构建市的统计任务
TaskBto cityStatTask = new TaskBto(CHECK_EXAM_STAT_0.id, "检查统计任务", provStatTask.getId(), addNode(provStatTask.getNodeIdDetail(), provStatTask.getId()), CONFIRM_CHECK_STAT.id, cityStatId, unit.getUnitId(), 0);
cityStatTask.setCustomInfo("manual");
cityStatTask.getInvolveUserIdList().add(-1);
cityStatTask.setCurrentPoint(1);
taskService.start(cityStatTask);
}
return ResponseEntity.ok("发起核查成功");
}
/** /**
* 手动发起核 * 发起检
* <li>1. 添加发起核查bill记录</> * <li>1. 添加发起核查bill记录</>
* <li>2. 构建发起单位的统计账单与Task</> * <li>2. 构建发起单位的统计账单与Task</>
* <li>3. 构建被核查单位的详情账单与Task</li> * <li>3. 构建被核查单位的详情账单与Task</li>
* *
* @param billVo 核查发起对象 * @param billVo 核查发起对象
*/ */
@ApiOperation(value = "发起手动核查", notes = "手动发起核查,需要指定参数") @ApiOperation(value = "发起查", notes = "手动发起核查,需要指定参数")
@PostMapping("/manual") @PostMapping("/startExam")
public ResponseEntity<ResultObj> startManualCheck(@RequestBody CheckBillVo billVo) { public ResponseEntity<ResultObj> startManualCheck(@RequestBody CheckBillVo billVo) {
List<Integer> detailIds = new ArrayList<>(); List<Integer> detailIds = new ArrayList<>();
// 1. 添加发起核查bill记录 // 1. 添加发起核查bill记录
......
package com.tykj.dev.device.confirmcheck.entity.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
import java.util.List;
/**
* CheckCheckVo.
*
* @author Matrix <xhyrzldf@gmail.com>
* @since 2021/1/12 at 4:24 下午
*/
@Data
@ApiModel("核查发起对象")
public class CheckCheckVo {
@ApiModelProperty(name = "核查标题",example = "测试核查标题")
private String title;
@ApiModelProperty(name = "核查开始时间",example = "2021-01-12")
private LocalDate startTime;
@ApiModelProperty(name = "核查截止时间",example = "2021-01-15")
private LocalDate endTime;
@ApiModelProperty(name = "发起单位id")
private Integer unitId;
@ApiModelProperty(name = "被核查的区域id集合")
private List<Integer> areaRange;
@ApiModelProperty(name = "备注")
private String remark;
}
package com.tykj.dev.device.confirmcheck.entity.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* CheckExamDetailVo.
*
* @author Matrix <xhyrzldf@gmail.com>
* @since 2021/1/12 at 4:19 下午
*/
@Data
@ApiModel("核查发起细节")
public class CheckExamDetailVo {
@ApiModelProperty(name = "核查组成员名称")
private List<String> userNames;
@ApiModelProperty(name = "需要被检查的区域id")
private Integer areaId;
@ApiModelProperty(name = "备注")
private String remark;
}
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.Data;
import java.time.LocalDate;
import java.util.List;
/**
* CheckExamVo.
*
* @author Matrix <xhyrzldf@gmail.com>
* @since 2021/1/12 at 3:56 下午
*/
@Data
@ApiModel("检查发起对象")
public class CheckExamVo {
@ApiModelProperty(name = "业务标题", example = "浙江省手动核查测试")
@JSONField(name = "title")
private String checkTitle;
@ApiModelProperty(name = "截止时间", example = "2021-01-12")
private LocalDate endTime;
@ApiModelProperty(name = "核查组名称")
private String groupName;
@ApiModelProperty(name = "发起检查细节")
@JSONField(name = "detail")
private List<CheckExamDetailVo> detail;
}
...@@ -40,10 +40,7 @@ import org.springframework.scheduling.support.CronTrigger; ...@@ -40,10 +40,7 @@ import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledFuture;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
......
...@@ -49,6 +49,16 @@ public enum StatusEnum { ...@@ -49,6 +49,16 @@ public enum StatusEnum {
CHECK_DETAIL_2(122, "等待核查员A处理"), CHECK_DETAIL_2(122, "等待核查员A处理"),
CHECK_DETAIL_3(123, "等待核查员B处理"), CHECK_DETAIL_3(123, "等待核查员B处理"),
//以下为检查stat状态
CHECK_EXAM_STAT_0(130, "检查统计数据收集中"),
CHECK_EXAM_STAT_1(131, "检查统计数据等待确认"),
//以下为检查detail状态
CHECK_EXAM_DETAIL_0(140, "检查统计数据收集中"),
CHECK_EXAM_DETAIL_1(141, "检查统计数据收集中"),
CHECK_EXAM_DETAIL_2(142, "检查统计数据收集中"),
CHECK_EXAM_DETAIL_3(143, "检查统计数据收集中"),
/** /**
* 清退任务 * 清退任务
......
...@@ -61,8 +61,8 @@ public class RepairControllerTest extends BaseTest { ...@@ -61,8 +61,8 @@ public class RepairControllerTest extends BaseTest {
repairBillSaveVo.setAgent("sadad"); repairBillSaveVo.setAgent("sadad");
repairBillSaveVo.setReceiveUnit("省机要局"); repairBillSaveVo.setReceiveUnit("省机要局");
List<DeviceDetailVo> ids = new ArrayList<>(); List<DeviceDetailVo> ids = new ArrayList<>();
ids.add(new DeviceDetailVo(21, "aaa")); // ids.add(new DeviceDetailVo(21, "aaa"));
ids.add(new DeviceDetailVo(26, "asdasd")); // ids.add(new DeviceDetailVo(26, "asdasd"));
repairBillSaveVo.setDeviceList(ids); repairBillSaveVo.setDeviceList(ids);
repairBillSaveVo.setFileName("aaaa"); repairBillSaveVo.setFileName("aaaa");
repairBillSaveVo.setFileUrl("sdfhks"); repairBillSaveVo.setFileUrl("sdfhks");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论