package com.project.enforce.service.impl;
|
|
import cn.hutool.core.convert.Convert;
|
import com.project.common.core.domain.entity.SysUser;
|
import com.project.common.exception.base.BaseException;
|
import com.project.common.utils.SecurityUtils;
|
import com.project.common.utils.StringUtils;
|
import com.project.enforce.domain.EnforceCheckLog;
|
import com.project.enforce.domain.EnforceOrder;
|
import com.project.enforce.service.ICheckService;
|
import com.project.enforce.service.IEnforceCheckLogService;
|
import com.project.enforce.service.IEnforceOrderService;
|
import com.project.system.domain.SysCompany;
|
import com.project.system.domain.bo.editBo.CheckBo;
|
import com.project.system.service.ISysCompanyService;
|
import com.project.system.service.ISysUserService;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.List;
|
|
/**
|
* 功能描述:
|
*
|
* @author ZQN
|
* @version 1.0
|
* @date 2024年06月17日
|
*/
|
|
@Service
|
@RequiredArgsConstructor
|
public class CheckServiceImpl implements ICheckService
|
{
|
|
private final ISysCompanyService companyService;
|
private final IEnforceOrderService orderService;
|
private final IEnforceCheckLogService checkLogService;
|
private final ISysUserService userService;
|
|
@Override
|
@Transactional
|
public Boolean checkOrder(CheckBo bo)
|
{
|
switch (bo.getCheckType())
|
{
|
case 1:
|
SysCompany company = companyService.getById(bo.getId());
|
if (company==null) {
|
throw new BaseException("没有找到对应数据,请检查审核类型!");
|
}
|
if (bo.getCheckStatus()== -1){
|
company.setCheckStatus(-1);
|
} else {
|
company.setCheckStatus(2);
|
}
|
addCheckLog(company, bo);
|
company.setCheckReason(bo.getCheckReason());
|
return companyService.updateById(company);
|
case 2:
|
EnforceOrder order = orderService.getById(bo.getId());
|
if (order==null) {
|
throw new BaseException("没有找到对应数据,请检查审核类型!");
|
}
|
addCheckLog(order, bo);
|
if (bo.getCheckStatus()==-1){
|
order.setCheckStatus(-1);
|
} else {
|
String roleKey = "check_enforce_" + (order.getCheckLevel() + 1);
|
List<Long> ids = userService.getNumByRoleKey(roleKey, order.getCheckDeptId());
|
if (StringUtils.isNotEmpty(ids)){
|
order.setCheckStatus(1);
|
} else {
|
order.setCheckStatus(2);
|
order.setOrderStatus(2);
|
}
|
//审批登记加1
|
order.setCheckLevel(order.getCheckLevel()+1);
|
}
|
order.setCheckReason(bo.getCheckReason());
|
return orderService.updateById(order);
|
}
|
return false;
|
}
|
|
|
/**
|
* 添加审批记录
|
* @param obj 业务对象
|
* @param bo 审批参数
|
*/
|
private void addCheckLog(Object obj, CheckBo bo)
|
{
|
EnforceCheckLog checkLog = Convert.convert(EnforceCheckLog.class, obj);
|
checkLog.setCheckType(bo.getCheckType());
|
SysUser loginUser = SecurityUtils.getLoginUser().getUser();
|
checkLog.setCheckId(loginUser.getUserId());
|
checkLog.setCheckUser(loginUser.getUserName());
|
checkLog.setCheckPhone(loginUser.getPhonenumber());
|
checkLog.setCheckStatus(bo.getCheckStatus());
|
checkLog.setCheckReason(bo.getCheckReason());
|
boolean save = checkLogService.save(checkLog);
|
if (!save) {
|
throw new BaseException("审批记录添加失败,请重试!");
|
}
|
}
|
|
|
}
|