|
|
@@ -20,6 +20,10 @@ package com.trade.finance.service.impl;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import org.springblade.check.dto.AuditProecessDTO;
|
|
|
+import org.springblade.check.entity.AuditPathsActs;
|
|
|
+import org.springblade.check.entity.AuditPathsLevels;
|
|
|
+import org.springblade.check.feign.ICheckClient;
|
|
|
import com.trade.finance.dto.SettlementDTO;
|
|
|
import com.trade.finance.entity.Acc;
|
|
|
import com.trade.finance.entity.Files;
|
|
|
@@ -32,7 +36,6 @@ import com.trade.finance.service.ISettlementService;
|
|
|
import com.trade.finance.vo.SettlementVO;
|
|
|
import io.seata.spring.annotation.GlobalTransactional;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
-import org.checkerframework.checker.units.qual.A;
|
|
|
import org.springblade.client.entity.CorpsBank;
|
|
|
import org.springblade.client.feign.ICorpsDescClient;
|
|
|
import org.springblade.client.feign.ISerialClient;
|
|
|
@@ -70,6 +73,8 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
|
|
|
private IOrderDescClient orderDescClient;
|
|
|
|
|
|
+ private ICheckClient iCheckClient;
|
|
|
+
|
|
|
|
|
|
|
|
|
@Override
|
|
|
@@ -235,35 +240,30 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
@Transactional
|
|
|
public void check(Settlement settlement)
|
|
|
{
|
|
|
- //目前清核直接通过
|
|
|
- LambdaQueryWrapper<Items> itemsLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
- itemsLambdaQueryWrapper.eq(Items::getPid,settlement.getId());
|
|
|
- List<Items> items = itemsMapper.selectList(itemsLambdaQueryWrapper);
|
|
|
- if(!CollectionUtils.isEmpty(items))
|
|
|
- {
|
|
|
- //有几个申请明细 就生成几个账单明细
|
|
|
- items.forEach(e->{
|
|
|
- Acc acc=new Acc();
|
|
|
- BeanUtils.copyProperties(e,acc);
|
|
|
- acc.setId(null);
|
|
|
- acc.setSrcBillNo(e.getBillNo());
|
|
|
- acc.setAccSysNo(e.getSrcOrderno());
|
|
|
- acc.setSrcParentId(e.getSrcParentId());
|
|
|
- acc.setBillType(settlement.getBillType());
|
|
|
- acc.setCreateTime(new Date());
|
|
|
- acc.setStatus(0);
|
|
|
- acc.setCreateUser(AuthUtil.getUserId());
|
|
|
- acc.setCostType(e.getCostType());
|
|
|
- accMapper.insert(acc);
|
|
|
-
|
|
|
- //绑定accId,从申请表传递给结算表,后续结算时操作账单表的结算金额
|
|
|
- e.setAccId(acc.getId());
|
|
|
- itemsMapper.updateById(e);
|
|
|
-
|
|
|
- });
|
|
|
- }
|
|
|
- settlement.setCheckStatus("请核成功");
|
|
|
- baseMapper.updateById(settlement);
|
|
|
+ //判断是否有审批流,如果审批流已开启就进入审批流,否则直接走申请通过
|
|
|
+ AuditPathsActs pathsActs = iCheckClient.getActsByActId(1, "check_status");
|
|
|
+ //没开启审批流直接走 通过流程
|
|
|
+ if(pathsActs==null || pathsActs.getIsEnable()==2)
|
|
|
+ {
|
|
|
+ this.passCheck(settlement.getId());
|
|
|
+ }
|
|
|
+ //如果开启审批流了, 就直接创建审批业务
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //获取审批级次
|
|
|
+ List<AuditPathsLevels> auditPathsLevels = iCheckClient.listLevelsByActId(1, "check_status");
|
|
|
+
|
|
|
+ AuditProecessDTO auditProecessDTO=new AuditProecessDTO();
|
|
|
+ auditProecessDTO.setPathsLevelsList(auditPathsLevels);
|
|
|
+ auditProecessDTO.setActId(1);
|
|
|
+ auditProecessDTO.setBillId(settlement.getId());
|
|
|
+ auditProecessDTO.setBillNo(settlement.getSrcOrderno());
|
|
|
+ auditProecessDTO.setSendUserId(AuthUtil.getUserId());
|
|
|
+ auditProecessDTO.setSendName(AuthUtil.getUserName());
|
|
|
+ auditProecessDTO.setSendTime(new Date());
|
|
|
+ auditProecessDTO.setSendMsg(settlement.getRemark());
|
|
|
+ iCheckClient.createFinanceProcess(auditProecessDTO);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -364,4 +364,49 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
return settlementDTO;
|
|
|
}
|
|
|
|
|
|
+ //审核通过方法
|
|
|
+ public void passCheck(Long settlementId)
|
|
|
+ {
|
|
|
+ Settlement settlement = baseMapper.selectById(settlementId);
|
|
|
+ if(settlement ==null)
|
|
|
+ {
|
|
|
+ throw new SecurityException("数据错误,请确认后提交");
|
|
|
+ }
|
|
|
+ //目前清核直接通过
|
|
|
+ LambdaQueryWrapper<Items> itemsLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
+ itemsLambdaQueryWrapper.eq(Items::getPid,settlement.getId());
|
|
|
+ List<Items> items = itemsMapper.selectList(itemsLambdaQueryWrapper);
|
|
|
+ if(!CollectionUtils.isEmpty(items))
|
|
|
+ {
|
|
|
+ //有几个申请明细 就生成几个账单明细
|
|
|
+ items.forEach(e->{
|
|
|
+ Acc acc=new Acc();
|
|
|
+ BeanUtils.copyProperties(e,acc);
|
|
|
+ acc.setId(null);
|
|
|
+ acc.setSrcBillNo(e.getBillNo());
|
|
|
+ acc.setAccSysNo(e.getSrcOrderno());
|
|
|
+ acc.setSrcParentId(e.getSrcParentId());
|
|
|
+ acc.setBillType(settlement.getBillType());
|
|
|
+ acc.setCreateTime(new Date());
|
|
|
+ acc.setStatus(0);
|
|
|
+ acc.setCreateUser(AuthUtil.getUserId());
|
|
|
+ acc.setCostType(e.getCostType());
|
|
|
+ accMapper.insert(acc);
|
|
|
+
|
|
|
+ //绑定accId,从申请表传递给结算表,后续结算时操作账单表的结算金额
|
|
|
+ e.setAccId(acc.getId());
|
|
|
+ itemsMapper.updateById(e);
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+ settlement.setCheckStatus("请核成功");
|
|
|
+ baseMapper.updateById(settlement);
|
|
|
+ }
|
|
|
+ //审核取消方法
|
|
|
+ public void passCancel(Long settlementId)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|