|
|
@@ -17,6 +17,8 @@
|
|
|
package org.springblade.check.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import org.springblade.finance.feign.IFinanceClient;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
import org.springblade.check.dto.AuditProecessDTO;
|
|
|
import org.springblade.check.entity.AuditPathsActs;
|
|
|
import org.springblade.check.entity.AuditPathsLevels;
|
|
|
@@ -32,6 +34,7 @@ import org.springframework.stereotype.Service;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
|
@@ -41,10 +44,14 @@ import java.util.List;
|
|
|
* @since 2021-12-08
|
|
|
*/
|
|
|
@Service
|
|
|
+@AllArgsConstructor
|
|
|
public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, AuditProecess> implements IAuditProecessService
|
|
|
{
|
|
|
+
|
|
|
private AuditPathsActsMapper auditPathsActsMapper;
|
|
|
|
|
|
+ private IFinanceClient financeClient;
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<AuditProecessVO> selectAuditProecessPage(IPage<AuditProecessVO> page, AuditProecessVO auditProecess) {
|
|
|
return page.setRecords(baseMapper.selectAuditProecessPage(page, auditProecess));
|
|
|
@@ -70,11 +77,12 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
|
|
|
auditProecess.setSendTime(auditProecessDTO.getSendTime());
|
|
|
auditProecess.setSendMsg(auditProecessDTO.getSendMsg());
|
|
|
auditProecess.setAuditUserId(e.getAuditUserId());
|
|
|
+ auditProecess.setIffinalItem(e.getIffinalItem());
|
|
|
|
|
|
//除了第一级是待审,其他都N
|
|
|
if(e.getLevelId()==1)
|
|
|
{
|
|
|
- auditProecess.setAuditStatus("Q");
|
|
|
+ auditProecess.setAuditStatus("S");
|
|
|
}
|
|
|
|
|
|
else
|
|
|
@@ -103,13 +111,68 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
|
|
|
@GlobalTransactional
|
|
|
public void operationFinanceProcess(AuditProecess auditProecess)
|
|
|
{
|
|
|
- //更新当前审批记录
|
|
|
-
|
|
|
- //更改下一个审批人的审批状态
|
|
|
-
|
|
|
- //更改原财务逻辑(通过 or 拒绝)
|
|
|
-
|
|
|
+ //用户操作 1.通过 2.驳回
|
|
|
+ Integer operate = auditProecess.getOperate();
|
|
|
+ //查看当前审批是否为最后一级
|
|
|
+ String iffinalItem = auditProecess.getIffinalItem();
|
|
|
+ //审批人
|
|
|
+ auditProecess.setAuditUserId(String.valueOf(AuthUtil.getUserId()));
|
|
|
+ //审批时间
|
|
|
+ auditProecess.setAuditOpTime(new Date());
|
|
|
+ //不是最后一级
|
|
|
+ if(iffinalItem.equals("F"))
|
|
|
+ {
|
|
|
+ //通过
|
|
|
+ if(operate==1)
|
|
|
+ {
|
|
|
+ //查询下一级,开启待审
|
|
|
+ LambdaQueryWrapper<AuditProecess> auditProecessLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
+ auditProecessLambdaQueryWrapper
|
|
|
+ .eq(AuditProecess::getActId,auditProecess.getActId())
|
|
|
+ .eq(AuditProecess::getBillId,auditProecess.getBillId())
|
|
|
+ .eq(AuditProecess::getBillNo,auditProecess.getBillNo())
|
|
|
+ .eq(AuditProecess::getTenantId,AuthUtil.getTenantId())
|
|
|
+ .eq(AuditProecess::getLevelId,auditProecess.getLevelId()+1);
|
|
|
+ AuditProecess proecess = baseMapper.selectOne(auditProecessLambdaQueryWrapper);
|
|
|
+ if(proecess==null)
|
|
|
+ {
|
|
|
+ throw new SecurityException("审批通过=>获取下一级信息失败");
|
|
|
+ }
|
|
|
+ proecess.setAuditStatus("S");
|
|
|
+ baseMapper.updateById(proecess);
|
|
|
+ }
|
|
|
+ //不通过
|
|
|
+ else if(operate==2)
|
|
|
+ {
|
|
|
+ //todo 调用feign取消
|
|
|
+ financeClient.passCancel(auditProecess.getBillId());
|
|
|
+ }
|
|
|
|
|
|
+ }
|
|
|
+ //是最后一级
|
|
|
+ else if(iffinalItem.equals("T"))
|
|
|
+ {
|
|
|
+ //通过
|
|
|
+ if(operate==1)
|
|
|
+ {
|
|
|
+ //todo 调用feign直接通过
|
|
|
+ financeClient.passCheck(auditProecess.getBillId());
|
|
|
+ }
|
|
|
+ //不通过
|
|
|
+ else if(operate==2)
|
|
|
+ {
|
|
|
+ //todo 调用feign取消
|
|
|
+ financeClient.passCancel(auditProecess.getBillId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ throw new SecurityException("审批异常,请联系管理员");
|
|
|
+ }
|
|
|
+ //保存操作记录
|
|
|
+ auditProecess.setAuditMsg(auditProecess.getAuditMsg());
|
|
|
+ auditProecess.setAuditItem(new Date());
|
|
|
+ baseMapper.updateById(auditProecess);
|
|
|
}
|
|
|
|
|
|
}
|