工单审核

This commit is contained in:
Chujinwang 2024-07-13 14:41:15 +08:00
parent 28f1cf7777
commit 197e8b1de7
3 changed files with 75 additions and 74 deletions

View File

@ -32,9 +32,8 @@ public class WrkInfoAuditController {
@PostMapping ("/audit/{wrkId}")
@RequiresPermissions("wrk:info:audit")
@SysLog(value = "工单审核", businessType = BusinessType.AUDIT)
public AjaxResult audit(@Validated @RequestBody AuditDTO audit,
@PathVariable Long wrkId) {
wrkInfoService.audit(audit, wrkId);
public AjaxResult audit(@Validated @RequestBody AuditDTO audit) {
wrkInfoService.audit(audit);
return AjaxResult.success();
}
}

View File

@ -34,5 +34,5 @@ public interface WrkInfoService extends IService<WrkInfo> {
void submit(WrkInfoDTO info);
void audit(AuditDTO audit, Long wrkId);
void audit(AuditDTO audit);
}

View File

@ -107,7 +107,6 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
private boolean enable;
@Override
public PageResult queryDispatchPage(WrkInfoQuery query) {
CommonParam commonParam = CommonParam.buildPageRequest();
@ -222,6 +221,7 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
/**
* 提交工单
*
* @param info 工单, 商户信息
*/
@Override
@ -347,8 +347,8 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
* @param audit 审核所需
* 工单共计有7个状态,
* 1. 已分配
* 2. 待初
* 3. 待复审
* 2. 核中
* 3. 初审通过-待复审
* 4. 复审通过
* 5. 初审驳回
* 6. 复审驳回
@ -357,53 +357,56 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
* todo 当任务为只需要初审时, 点击初审通过, 则其状态由2 变为 7
* todo 当任务需要复审时, 点击初审通过, 其状态由2 变为3
* 当任务不需要审核时, 点击提交, 工单状态, 由1 变为8
* @param wrkId 工单id
*/
@Override
public void audit(AuditDTO audit, Long wrkId) {
public void audit(AuditDTO audit) {
Integer auditStatus = audit.getAuditStatus();
// 1== auditStatus 代表审核通过, 否则代表审核拒绝
// 获取工单信息
WrkInfo wrkInfo = getById(wrkId);
WrkInfo wrkInfo = getById(audit.getWrkId());
AssertUtil.invalidate(ObjectUtil.isEmpty(wrkInfo), "未找寻到对应工单");
// 审核方式
Integer reviewMethod = TaskConfigUtils.reviewMethod(wrkInfo.getTaskId());
// 工单状态
Integer wrkStatus = wrkInfo.getWrkStatus();
// 工单状态(记录表使用) 1. 已分配 2. 审核中 3. 初审通过-待复审 4. 复审通过 5. 初审驳回 6. 复审驳回 7. 初审通过 8. 默认审核通过
Integer wrkStatus = 0;
// 当前 任务审核方式为 无需审核
AssertUtil.invalidate(1 == reviewMethod, "当前工单所属任务为无需审核");
// 获取最后一条数据, 用于判断是否为同一个审核人
WrkInfoAudit one = infoAuditService.getOne(new LambdaQueryWrapper<WrkInfoAudit>()
.eq(WrkInfoAudit::getWrkId, wrkId)
.eq(WrkInfoAudit::getAuditState, 1)
.eq(WrkInfoAudit::getIsRecord, 0)
);
Long userId;
if (ObjectUtil.isEmpty(one)){
userId = -1L;
}else {
userId = one.getUserId();
}
AssertUtil.invalidate(Objects.equals(userId, SecurityUtils.getUserId()), "两次审核通过不能为同一人");
WrkInfo auditInfo = new WrkInfo();
auditInfo.setWrkId(wrkId);
auditInfo.setWrkId(audit.getWrkId());
// 初审
if (2 == reviewMethod) {
// 审核通过
if (1 == auditStatus) {
wrkStatus = 7;
}
// 审核驳回
else {
wrkStatus = 5;
}
// 判断原先的状态
auditInfo.setWrkStatus(wrkStatus == 2 ? 7 : 2);
}
// 需复审
else if (3 == reviewMethod) {
// 获取上一个审核
List<WrkInfoAudit> list = infoAuditService.list(new LambdaQueryWrapper<WrkInfoAudit>()
.eq(WrkInfoAudit::getWrkId, audit.getWrkId())
.eq(WrkInfoAudit::getAuditState, 7)
.eq(WrkInfoAudit::getIsRecord, 0)
);
for (WrkInfoAudit wrkInfoAudit : list) {
AssertUtil.invalidate(wrkInfoAudit.getUserId().equals(SecurityUtils.getUserId()), "两次审核通过不能为同一人");
}
// 审核通过
if (1 == auditStatus) {
wrkStatus = 4;
}
// 审核驳回
else {
wrkStatus = 6;
}
}
auditInfo.setWrkStatus(wrkStatus);
updateById(auditInfo);
// 新增一条审核工单记录
@ -413,14 +416,14 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
infoAuditService.update(
infoAudit,
new LambdaQueryWrapper<WrkInfoAudit>()
.eq(WrkInfoAudit::getWrkId, wrkId)
.eq(WrkInfoAudit::getWrkId, audit.getWrkId())
);
// 同时新增一条记录
infoAudit.setAuditState(auditStatus);
infoAudit.setAuditState(wrkStatus);
infoAudit.setAuditTime(LocalDateTime.now());
infoAudit.setUserId(SecurityUtils.getUserId());
infoAudit.setUserName(SecurityUtils.getUsername());
infoAudit.setWrkId(wrkId);
infoAudit.setWrkId(audit.getWrkId());
infoAudit.setDeptId(SecurityUtils.getDeptId());
infoAudit.setIsRecord(0);
infoAudit.setRemark(audit.getRemark());
@ -569,8 +572,7 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
wrkInfoStoreRecordService.save(wrkInfoStoreRecord);
}
}
}
else if(method.equals(1) || method.equals(2)){
} else if (method.equals(1) || method.equals(2)) {
Assert.notNull(query.getUserId(), "需要指定业务员");
Result<SysUser> result = userFeignService.getInfoById(query.getUserId(), SecurityConstants.INNER);
if (result.isSuccess()) {