工单审核
This commit is contained in:
parent
28f1cf7777
commit
197e8b1de7
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,5 +34,5 @@ public interface WrkInfoService extends IService<WrkInfo> {
|
|||
|
||||
void submit(WrkInfoDTO info);
|
||||
|
||||
void audit(AuditDTO audit, Long wrkId);
|
||||
void audit(AuditDTO audit);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,9 +70,9 @@ import java.util.*;
|
|||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @auther: zhao
|
||||
* @date: 2024/6/26 17:13
|
||||
*/
|
||||
* @auther: zhao
|
||||
* @date: 2024/6/26 17:13
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> implements WrkInfoService {
|
||||
|
|
@ -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();
|
||||
|
|
@ -162,7 +161,7 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
|
|||
List<WrkImg> imgList = wrkImgService.list(new LambdaQueryWrapper<WrkImg>().eq(WrkImg::getImgId, wrkId));
|
||||
infoDetail.setInfoImg(BeanUtil.copyToList(imgList, WrkImgVO.class));
|
||||
// 内蒙古 五统一商户
|
||||
if (terminal.getTerminalId() != null && "建行内蒙古".equals(TaskConfigUtils.getConfig(wrkInfo.getTaskId()).getName())){
|
||||
if (terminal.getTerminalId() != null && "建行内蒙古".equals(TaskConfigUtils.getConfig(wrkInfo.getTaskId()).getName())) {
|
||||
FiveStore fiveStore = fiveStoreService.getOne(new LambdaQueryWrapper<FiveStore>()
|
||||
.eq(FiveStore::getTerminalId, terminal.getTerminalId()).last(Operator.LIMIT_ONE.getCharacter()));
|
||||
infoDetail.setFiveStoreDetails(BeanUtil.copyProperties(fiveStore, FiveStoreVO.class));
|
||||
|
|
@ -185,7 +184,7 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
|
|||
|
||||
Integer method = TaskConfigUtils.dispatchMethod(query.getTaskId());
|
||||
|
||||
this.saveData(dispatch,query,method);
|
||||
this.saveData(dispatch, query, method);
|
||||
|
||||
if (!TaskConfigUtils.isRepeat(query.getTaskId())) {
|
||||
terminalService.updateOccupy(dispatch.stream().map(DispatchDTO::getTerminalId).collect(Collectors.toList()), 1);
|
||||
|
|
@ -214,7 +213,7 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
|
|||
.remark("导出巡检单信息")
|
||||
.createBy(SecurityUtils.getUsername())
|
||||
.build(), SecurityConstants.INNER);
|
||||
if (task.isSuccess() && task.getData() != null){
|
||||
if (task.isSuccess() && task.getData() != null) {
|
||||
return task.getData();
|
||||
}
|
||||
throw new ResultException("创建后台任务异常");
|
||||
|
|
@ -222,6 +221,7 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
|
|||
|
||||
/**
|
||||
* 提交工单
|
||||
*
|
||||
* @param info 工单, 商户信息
|
||||
*/
|
||||
@Override
|
||||
|
|
@ -345,65 +345,68 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
|
|||
* 工单审核
|
||||
*
|
||||
* @param audit 审核所需
|
||||
* 工单共计有7个状态,
|
||||
* 1. 已分配
|
||||
* 2. 待初审
|
||||
* 3. 待复审
|
||||
* 4. 复审通过
|
||||
* 5. 初审驳回
|
||||
* 6. 复审驳回
|
||||
* 7. 初审通过
|
||||
* 8. 默认审核通过
|
||||
* todo 当任务为只需要初审时, 点击初审通过, 则其状态由2 变为 7
|
||||
* todo 当任务需要复审时, 点击初审通过, 其状态由2 变为3
|
||||
* 当任务不需要审核时, 点击提交, 工单状态, 由1 变为8
|
||||
* @param wrkId 工单id
|
||||
* 工单共计有7个状态,
|
||||
* 1. 已分配
|
||||
* 2. 审核中
|
||||
* 3. 初审通过-待复审
|
||||
* 4. 复审通过
|
||||
* 5. 初审驳回
|
||||
* 6. 复审驳回
|
||||
* 7. 初审通过
|
||||
* 8. 默认审核通过
|
||||
* todo 当任务为只需要初审时, 点击初审通过, 则其状态由2 变为 7
|
||||
* todo 当任务需要复审时, 点击初审通过, 其状态由2 变为3
|
||||
* 当任务不需要审核时, 点击提交, 工单状态, 由1 变为8
|
||||
*/
|
||||
@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);
|
||||
// 初审
|
||||
if (2 == reviewMethod){
|
||||
// 审核通过
|
||||
if (1 == auditStatus){
|
||||
|
||||
WrkInfo auditInfo = new WrkInfo();
|
||||
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){
|
||||
|
||||
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());
|
||||
|
|
@ -468,8 +471,8 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
|
|||
// 审核拒绝之后 撤回 回归原来状态
|
||||
|
||||
// 撤机 1 机具状态 选择 银行撤机 2 工单类型选择 撤机
|
||||
if (DictUtils.getDictLabel("terminal_status", "银行撤机").equals(info.getTerminalStatus()+"") ||
|
||||
DictUtils.getDictLabel("wrk_type","撤机").equals(info.getWorkType() + "")) {
|
||||
if (DictUtils.getDictLabel("terminal_status", "银行撤机").equals(info.getTerminalStatus() + "") ||
|
||||
DictUtils.getDictLabel("wrk_type", "撤机").equals(info.getWorkType() + "")) {
|
||||
//设置商户状态为异常
|
||||
store.setState(Integer.valueOf(Objects.requireNonNull(DictUtils.getDictValue("mer_status", "异常"))));
|
||||
// 添加备注
|
||||
|
|
@ -480,11 +483,11 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
|
|||
|
||||
}
|
||||
// 异常 服务结果 选择 原址无此终端 和 原址无此商户 机具状态 选择 设备丢失 门店状态 选择 门店不存在
|
||||
else if (DictUtils.getDictLabel("terminal_status","设备丢失").equals(info.getTerminalStatus() + "") ||
|
||||
else if (DictUtils.getDictLabel("terminal_status", "设备丢失").equals(info.getTerminalStatus() + "") ||
|
||||
// 门店状态
|
||||
DictUtils.getDictLabel("store_status","门店不存在").equals(info.getStoreStatus() + "") ||
|
||||
DictUtils.getDictLabel("store_status", "门店不存在").equals(info.getStoreStatus() + "") ||
|
||||
// service_results 服务结果
|
||||
List.of(DictUtils.getDictLabel("service_results","原址无此终端"), DictUtils.getDictLabel("service_results","原址无此商户"))
|
||||
List.of(DictUtils.getDictLabel("service_results", "原址无此终端"), DictUtils.getDictLabel("service_results", "原址无此商户"))
|
||||
.contains(info.getServiceResult() + "")) {
|
||||
// 设置商户状态为异常
|
||||
//设置商户状态为异常
|
||||
|
|
@ -501,13 +504,13 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
|
|||
/**
|
||||
* 此处调用后台执行 -- 下载word 工单
|
||||
*/
|
||||
public Result<String> downInspectionTemplate(String params){
|
||||
public Result<String> downInspectionTemplate(String params) {
|
||||
ReviewedQuery query = JSON.parseObject(params, ReviewedQuery.class);
|
||||
// 先查询是否存在对应的记录
|
||||
WrapperUtils.buildSql(query);
|
||||
// 需要导出 工单信息
|
||||
List<WrkInfoDetailsVO> wrkInfoDetailsVOS = baseMapper.listInsTemplate(query);
|
||||
if (CollectionUtil.isEmpty(wrkInfoDetailsVOS)){
|
||||
if (CollectionUtil.isEmpty(wrkInfoDetailsVOS)) {
|
||||
return Result.failed("查询工单为空");
|
||||
}
|
||||
// 工单map
|
||||
|
|
@ -518,7 +521,7 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
|
|||
Map<Long, List<WrkImgVO>> imgMap = imgList.stream().collect(Collectors.groupingBy(WrkImgVO::getWrkId));
|
||||
List<InspectionConfigVO> insConfigs = inspectionDataService.listInspections(wrkMap.keySet());
|
||||
Map<Long, List<InspectionConfigVO>> configMap = insConfigs.stream().collect(Collectors.groupingBy(InspectionConfigVO::getWrkId));
|
||||
wrkMap.forEach((wrkId, infoDetail)->{
|
||||
wrkMap.forEach((wrkId, infoDetail) -> {
|
||||
List<WrkImgVO> wrkImgs = imgMap.get(wrkId);
|
||||
infoDetail.setInfoImg(wrkImgs);
|
||||
List<InspectionConfigVO> inspectionConfigVOS = configMap.get(wrkId);
|
||||
|
|
@ -528,7 +531,7 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
|
|||
return Result.ok(generatedInsFactory.generated(wrkMap));
|
||||
}
|
||||
|
||||
private WrkInfo makeWrkInfoEntity(DispatchDTO dispatch,DispatchQuery query,Long userId,String userName,Integer workMethod){
|
||||
private WrkInfo makeWrkInfoEntity(DispatchDTO dispatch, DispatchQuery query, Long userId, String userName, Integer workMethod) {
|
||||
WrkInfo wrkInfo = new WrkInfo();
|
||||
wrkInfo.setTaskId(query.getTaskId());
|
||||
wrkInfo.setUserId(userId);
|
||||
|
|
@ -547,18 +550,18 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
|
|||
return wrkInfo;
|
||||
}
|
||||
|
||||
private void saveData(List<DispatchDTO> dispatch,DispatchQuery query,Integer method){
|
||||
private void saveData(List<DispatchDTO> dispatch, DispatchQuery query, Integer method) {
|
||||
// (0 业务员领取 1 只能派给负责项目的业务员 2 只能派给商户对应的客户经理 )
|
||||
if(method.equals(0)){
|
||||
if (method.equals(0)) {
|
||||
Set<String> nickNames = StreamUtils.toSet(dispatch, DispatchDTO::getAccountManager);
|
||||
Result<Map<String, Long>> result = userFeignService.getIdByNicknames(nickNames, SecurityConstants.INNER);
|
||||
if(result.isSuccess()){
|
||||
Map<String, Long> userIds =result .getData();
|
||||
for (DispatchDTO dispatchDTO : dispatch){
|
||||
if (result.isSuccess()) {
|
||||
Map<String, Long> userIds = result.getData();
|
||||
for (DispatchDTO dispatchDTO : dispatch) {
|
||||
Long userId = userIds.get(dispatchDTO.getAccountManager());
|
||||
Assert.notNull(userId, "【{}】未设置商户", dispatchDTO.getAccountManager());
|
||||
// 组装wrkinfo实体
|
||||
WrkInfo wrkInfo = makeWrkInfoEntity(dispatchDTO, query, userId,dispatchDTO.getAccountManager(),0);
|
||||
WrkInfo wrkInfo = makeWrkInfoEntity(dispatchDTO, query, userId, dispatchDTO.getAccountManager(), 0);
|
||||
save(wrkInfo);
|
||||
//组装wrkterminal 实体
|
||||
WrkInfoTerminalRecord wrkInfoTerminalRecord = BeanUtil.copyProperties(dispatchDTO, WrkInfoTerminalRecord.class);
|
||||
|
|
@ -569,13 +572,12 @@ 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()){
|
||||
if (result.isSuccess()) {
|
||||
String nickName = result.getData().getNickName();
|
||||
for (DispatchDTO dispatchDTO : dispatch){
|
||||
for (DispatchDTO dispatchDTO : dispatch) {
|
||||
Assert.notNull(nickName, "【{}】未设置商户", dispatchDTO.getAccountManager());
|
||||
WrkInfo wrkInfo = makeWrkInfoEntity(dispatchDTO, query, query.getUserId(), dispatchDTO.getAccountManager(), method);
|
||||
// 工单信息
|
||||
|
|
|
|||
Loading…
Reference in New Issue