|
@@ -1947,8 +1947,13 @@ private Page<WmTask> getReviewTaskPage(WmSupervisionDto.OnTaskSupervisionPage qu
|
|
|
}
|
|
|
|
|
|
// 执行任务监察
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean doTaskSupervision(WmSupervisionDto.OnTaskSupervision resource, HnqzUser operator) {
|
|
|
|
|
|
+ if (!resource.getSupervision() && StrUtil.isBlankOrUndefined(resource.getRemarks())) {
|
|
|
+ throw new BizException("监督意见不能为空");
|
|
|
+ }
|
|
|
+
|
|
|
// 监察任务是否有监察记录
|
|
|
WmTaskSupervision supervision =
|
|
|
taskSupervisionService.getSupervisionByTaskId(resource.getTaskId());
|
|
@@ -1968,8 +1973,13 @@ private Page<WmTask> getReviewTaskPage(WmSupervisionDto.OnTaskSupervisionPage qu
|
|
|
|
|
|
resource.setRemarks(remarks);
|
|
|
|
|
|
- taskSupervisionAdviceService.createAdvice(
|
|
|
- supervision.getSupervisionId(), resource, supervision.getRemarks(), operator);
|
|
|
+ try {
|
|
|
+ taskSupervisionAdviceService.createAdvice(
|
|
|
+ supervision.getSupervisionId(), resource, supervision.getRemarks(), supervision.getSupervisionResult(), operator);
|
|
|
+ } catch (DataIntegrityViolationException e) {
|
|
|
+ log.warn("创建监督意见冲突: " + supervision.getSupervisionId().toString());
|
|
|
+ throw new BizException("创建监督意见冲突", e);
|
|
|
+ }
|
|
|
|
|
|
taskSupervisionService.updateSupervision(
|
|
|
supervision.getSupervisionId(), supervision.getRemarks(), modifiable, supervision.getSupervisionResult(), operator);
|
|
@@ -1977,15 +1987,26 @@ private Page<WmTask> getReviewTaskPage(WmSupervisionDto.OnTaskSupervisionPage qu
|
|
|
} else { // 监督员
|
|
|
if (!StrUtil.equals(operator.getUsername(), supervision.getCreateBy())) {
|
|
|
// 独占
|
|
|
- return false;
|
|
|
+ log.warn("该任务已存在其他账号监督记录,请刷新页面: " + supervision.getSupervisionId().toString());
|
|
|
+ throw new BizException("该任务已存在其他账号监督记录,请刷新页面");
|
|
|
+ }
|
|
|
+ if (!supervision.getModifiable()) {
|
|
|
+ // 只写一次
|
|
|
+ log.warn("此任务已被监督: " + supervision.getSupervisionId().toString());
|
|
|
+ throw new BizException("此任务已被监督");
|
|
|
}
|
|
|
// 监察员重新提交,删除历史的审核意见
|
|
|
taskSupervisionAdviceService.delAdvice(supervision.getSupervisionId(), operator);
|
|
|
taskSupervisionService.updateSupervision(
|
|
|
supervision.getSupervisionId(), remarks, modifiable, resource.getSupervision(), operator);
|
|
|
// 监督员advice作为历史保留
|
|
|
- taskSupervisionAdviceService.createAdvice(
|
|
|
- supervision.getSupervisionId(), resource, null, operator);
|
|
|
+ try {
|
|
|
+ taskSupervisionAdviceService.createAdvice(
|
|
|
+ supervision.getSupervisionId(), resource, null, resource.getSupervision(), operator);
|
|
|
+ } catch (DataIntegrityViolationException e) {
|
|
|
+ log.warn("创建监督意见冲突: " + supervision.getSupervisionId().toString());
|
|
|
+ throw new BizException("创建监督意见冲突", e);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -1999,9 +2020,9 @@ private Page<WmTask> getReviewTaskPage(WmSupervisionDto.OnTaskSupervisionPage qu
|
|
|
}
|
|
|
// 监督员advice作为历史保留
|
|
|
taskSupervisionAdviceService.createAdvice(
|
|
|
- sup.getSupervisionId(), resource, null, operator);
|
|
|
+ sup.getSupervisionId(), resource, null, sup.getSupervisionResult(), operator);
|
|
|
} catch(DataIntegrityViolationException e) {
|
|
|
- throw new BizException("任务已被监督:" + resource.getTaskId().toString());
|
|
|
+ throw new BizException("当前任务已存在监督记录,请刷新页面:" + resource.getTaskId().toString());
|
|
|
}
|
|
|
// 更新监督结果
|
|
|
packageStatusService.updateSupervisionFlag(resource.getPkgId());
|