Browse Source

修改财务和审批

ioioio 4 years ago
parent
commit
671f9b0ab5

+ 40 - 0
blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java

@@ -50,6 +50,7 @@ import org.springblade.core.boot.ctrl.BladeController;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 
 /**
@@ -80,6 +81,7 @@ public class AuditProecessController extends BladeController {
 	@ApiOperation(value = "列表-用户审批记录", notes = "传入auditProecess")
 	public R list(AuditProecess auditProecess, Query query) {
 		LambdaQueryWrapper<AuditProecess> lambdaQueryWrapper=new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(AuditProecess::getIsDelete,0);
 		lambdaQueryWrapper.like(AuditProecess::getAuditUserId, String.valueOf(AuthUtil.getUserId()));
 		lambdaQueryWrapper.eq(StringUtils.isNotBlank(auditProecess.getAuditStatus()),AuditProecess::getAuditStatus, auditProecess.getAuditStatus());
 		IPage pages = auditProecessService.page(Condition.getPage(query), lambdaQueryWrapper);
@@ -130,6 +132,44 @@ public class AuditProecessController extends BladeController {
 		}
 	}
 
+	@PostMapping("cancelCheck")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "撤回审核", notes = " ")
+	public R cancelCheck(@ApiParam(value = "申请表主键", required = true) @RequestParam Long id)
+	{
+		auditProecessService.cancelCheck(id);
+		return R.success("操作成功");
+	}
+	@GetMapping("findAuditProcessList")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "查看审核记录", notes = " ")
+	public R findAuditProcessList(@ApiParam(value = "申请表主键", required = true) @RequestParam Long id)
+	{
+		//查询最大批次号
+		LambdaQueryWrapper<AuditProecess> countMaxWrapper=new LambdaQueryWrapper<>();
+		countMaxWrapper
+			.eq(AuditProecess::getSrcBillId,id)
+			.eq(AuditProecess::getIsDelete,0)
+			.eq(AuditProecess::getTenantId,AuthUtil.getTenantId());
+		List<AuditProecess> proecessList = auditProecessService.list(countMaxWrapper);
+		if(CollectionUtils.isEmpty(proecessList))
+		{
+			return R.data(Collections.EMPTY_LIST);
+		}
+		//获取此付费申请下的最大批次号
+		int max = proecessList.stream().max(Comparator.comparing(AuditProecess::getBatchNo)).get().getBatchNo();
+		//根据最大批次号, 查询最新的审批记录
+		LambdaQueryWrapper<AuditProecess> auditProecessLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		auditProecessLambdaQueryWrapper
+			.eq(AuditProecess::getBatchNo,max)
+			.orderByAsc(AuditProecess::getLevelId)
+			.eq(AuditProecess::getSrcBillId,id)
+		.eq(AuditProecess::getIsDelete,0)
+		.eq(AuditProecess::getTenantId,AuthUtil.getTenantId());
+		return R.data(auditProecessService.list(auditProecessLambdaQueryWrapper));
+
+	}
+
 	@PostMapping("createFinanceProcess")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "开启-财务审批流记录", notes = "传入auditProecessDTO")

+ 4 - 0
blade-service/blade-check/src/main/java/org/springblade/check/entity/AuditProecess.java

@@ -141,4 +141,8 @@ public class AuditProecess implements Serializable {
 
 	    private String url;
 
+	    private Integer isDelete;
+
+	    private int batchNo;
+
 }

+ 2 - 0
blade-service/blade-check/src/main/java/org/springblade/check/service/IAuditProecessService.java

@@ -47,4 +47,6 @@ public interface IAuditProecessService extends IService<AuditProecess> {
 
 	void batchOperation(List<AuditProecess> processLis,Integer operate);
 
+	void cancelCheck(Long srcBillId);
+
 }

+ 68 - 1
blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java

@@ -17,6 +17,7 @@
 package org.springblade.check.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import org.springblade.client.entity.Message;
 import org.springblade.client.feign.IMessageClient;
 import org.springblade.core.tool.api.R;
@@ -37,8 +38,11 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 审批流记录 服务实现类
@@ -66,8 +70,26 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 	@Transactional
 	public void createFinanceProcess(AuditProecessDTO auditProecessDTO)
 	{
+		//查询最大批次号
+		int current=0;
+		LambdaQueryWrapper<AuditProecess> auditProecessLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		auditProecessLambdaQueryWrapper.eq(AuditProecess::getSrcBillId,auditProecessDTO.getSrcBillId());
+		List<AuditProecess> auditProecesses = baseMapper.selectList(auditProecessLambdaQueryWrapper);
+		if(CollectionUtils.isNotEmpty(auditProecesses))
+		{
+			int max = auditProecesses.stream().max(Comparator.comparing(AuditProecess::getBatchNo)).get().getBatchNo();
+			current=max+1;
+
+		}
+		else
+		{
+			current=1;
+		}
+		int finalCurrent = current;
+
 		List<AuditPathsLevels> pathsLevelsList = auditProecessDTO.getPathsLevelsList();
 		//根据审批级次 生成 有多少调就生成多条审批流
+
 		pathsLevelsList.forEach(e->{
 			AuditProecess auditProecess=new AuditProecess();
 			auditProecess.setActId(auditProecessDTO.getActId());
@@ -86,7 +108,7 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 			auditProecess.setIffinalItem(e.getIffinalItem());
 			auditProecess.setProcessType(auditProecessDTO.getProcessType());
 			auditProecess.setUrl(auditProecessDTO.getUrl());
-
+			auditProecess.setBatchNo(finalCurrent);
 			//除了第一级是待审,其他都N
 			if(e.getLevelId()==1)
 			{
@@ -247,4 +269,49 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 		});
 	}
 
+	@Override
+	@Transactional
+	@GlobalTransactional
+	public void cancelCheck(Long srcBillId)
+	{
+		//查询最大批次号
+		LambdaQueryWrapper<AuditProecess> countMaxWrapper=new LambdaQueryWrapper<>();
+		countMaxWrapper
+			.eq(AuditProecess::getSrcBillId,srcBillId)
+			.eq(AuditProecess::getIsDelete,0)
+			.eq(AuditProecess::getTenantId,AuthUtil.getTenantId());
+		List<AuditProecess> proecessList = baseMapper.selectList(countMaxWrapper);
+		if(CollectionUtils.isEmpty(proecessList))
+		{
+			throw new SecurityException("无审批记录,禁止撤回");
+		}
+		//获取此申请表下的最大批次号
+		int max = proecessList.stream().max(Comparator.comparing(AuditProecess::getBatchNo)).get().getBatchNo();
+        //获取最新的审批记录
+		List<AuditProecess> auditProecessList = proecessList.stream().filter(e -> e.getBatchNo() == max).collect(Collectors.toList());
+		//如果最新审批记录 第一级已经操作,就禁止撤回
+		long count = auditProecessList.stream().filter(
+			e -> e.getBatchNo() == max &&
+				 e.getLevelId() == 1 &&
+				(e.getAuditStatus().equals("A") || e.getAuditStatus().equals("B")))
+			.count();
+		if(count>0)
+		{
+			throw new SecurityException("第一级审批已经开始,禁止撤回");
+		}
+		//撤回开始,删除审批记录
+		auditProecessList.forEach(e->{
+                e.setIsDelete(1);
+			    baseMapper.updateById(e);
+		});
+		// 修改原申请表状态
+		R r = financeClient.passCancel(srcBillId);
+		if(!r.isSuccess())
+		{
+			throw new SecurityException("撤回失败,修改原申请表出错");
+		}
+
+
+	}
+
 }

+ 6 - 4
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

@@ -675,8 +675,8 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 	@Override
 	public void passCancel(Long settlementId)
 	{
-		//todo 删除申请记录
-        LambdaQueryWrapper<Settlement> settlementLambdaQueryWrapper=new LambdaQueryWrapper<>();
+
+       LambdaQueryWrapper<Settlement> settlementLambdaQueryWrapper=new LambdaQueryWrapper<>();
 		settlementLambdaQueryWrapper
 			.eq(Settlement::getId,settlementId)
 			.eq(Settlement::getTenantId,AuthUtil.getTenantId());
@@ -685,7 +685,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		{
 			throw new SecurityException("审批取消失败");
 		}
-
+		settlement.setCheckStatus("未请核");
+		baseMapper.updateById(settlement);
+		/*
 		LambdaQueryWrapper<Items> itemsLambdaQueryWrapper=new LambdaQueryWrapper<>();
 		itemsLambdaQueryWrapper.eq(Items::getPid,settlementId);
 		List<Items> itemsList = itemsMapper.selectList(itemsLambdaQueryWrapper);
@@ -697,7 +699,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			});
 		}
 		//删除财务申请主表
-		baseMapper.deleteById(settlementId);
+		baseMapper.deleteById(settlementId);*/
 	}