Browse Source

应付费用请核以及审核通过接口修改

纪新园 6 months ago
parent
commit
1aed8c1137

+ 10 - 0
blade-service/blade-los/src/main/java/org/springblade/los/box/controller/ExpenseApplicationController.java

@@ -25,6 +25,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
 import javax.validation.Valid;
 
+import org.springblade.common.annotation.RepeatSubmit;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
@@ -156,6 +157,15 @@ public class ExpenseApplicationController extends BladeController {
 	}
 
 	/**
+	 * 撤销请核费用
+	 */
+	@PostMapping("/revokeCheckPleaseVerifyCost")
+	@RepeatSubmit
+	public R revokeCheckPleaseVerifyCost(@Valid @RequestBody ExpenseApplication expenseApplication) {
+		return expenseApplicationService.revokeCheckPleaseVerifyCost(expenseApplication);
+	}
+
+	/**
 	 * 请核费用-批量
 	 */
 	@GetMapping("/pleaseVerifyCostBatch")

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/box/service/IExpenseApplicationService.java

@@ -46,4 +46,6 @@ public interface IExpenseApplicationService extends IService<ExpenseApplication>
 	R pleaseVerifyCost(ExpenseApplication expenseApplication);
 
 	R pleaseVerifyCostBatch(String ids,String type,String dc);
+
+	R revokeCheckPleaseVerifyCost(ExpenseApplication expenseApplication);
 }

+ 57 - 0
blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/ExpenseApplicationServiceImpl.java

@@ -40,7 +40,9 @@ import org.springblade.los.check.service.IAuditPathsActsService;
 import org.springblade.los.check.service.IAuditPathsLevelsService;
 import org.springblade.los.check.service.IAuditProecessService;
 import org.springblade.los.finance.fee.entity.FeeCenter;
+import org.springblade.los.finance.fee.entity.FinAccBills;
 import org.springblade.los.finance.fee.service.IFeeCenterService;
+import org.springblade.los.finance.fee.service.IFinAccBillsService;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -74,6 +76,8 @@ public class ExpenseApplicationServiceImpl extends ServiceImpl<ExpenseApplicatio
 
 	private final IAuditProecessService auditProecessService;
 
+	private final IFinAccBillsService finAccBillsService;
+
 	private final CurrencyUtils currencyUtils;
 
 	private final ISysClient sysClient;
@@ -525,4 +529,57 @@ public class ExpenseApplicationServiceImpl extends ServiceImpl<ExpenseApplicatio
 		}
 		return R.data("操作成功");
 	}
+
+	@Override
+	public R revokeCheckPleaseVerifyCost(ExpenseApplication expenseApplication) {
+		if (expenseApplication.getSrcId() == null || ObjectUtils.isNull(expenseApplication.getSrcType())) {
+			throw new RuntimeException("缺少必要参数");
+		}
+		if (ObjectUtils.isNull(expenseApplication.getFeeCenterList()) || expenseApplication.getFeeCenterList().isEmpty()) {
+			throw new RuntimeException("请选择明细");
+		}
+		StringBuilder text = new StringBuilder();
+		List<FeeCenter> feeCenterList = new ArrayList<>();
+		for (FeeCenter item : expenseApplication.getFeeCenterList()) {
+			if (item.getStlPid() == null) {
+				text.append("费用:").append(item.getFeeCnName()).append("金额:").append(item.getAmount()).append("未申请,");
+			}
+			if (item.getStlTtlAmount().compareTo(BigDecimal.ZERO) != 0) {
+				text.append("费用:").append(item.getFeeCnName()).append("已结算");
+			}
+			if (1 == item.getAccStatus()) {
+				feeCenterList.add(item);
+			}
+		}
+		if (ObjectUtils.isNotNull(text.toString())) {
+			throw new RuntimeException(text.toString());
+		}
+		List<Long> idList = expenseApplication.getFeeCenterList().stream().map(FeeCenter::getStlPid).distinct().collect(Collectors.toList());
+		if (!feeCenterList.isEmpty()) {
+			FinAccBills finAccBills = new FinAccBills();
+			finAccBills.setFeeCenterList(feeCenterList);
+			finAccBillsService.revokeBill(finAccBills);
+		}else{
+			for (FeeCenter item : expenseApplication.getFeeCenterList()) {
+				item.setStlPid(null);
+				item.setAuditStatus("0");
+				item.setApplyId(0L);
+				item.setApplyName("");
+				item.setApplyTime(null);
+			}
+			feeCenterService.updateBatchById(expenseApplication.getFeeCenterList());
+		}
+		if (idList.isEmpty()) {
+			throw new RuntimeException("未查到请核费用单据id");
+		}
+		this.removeByIds(idList);
+		baseMapper.insert(expenseApplication);
+		for (Long item : idList) {
+			R financeProcess = auditProecessService.deteleBySrcBillId(item);
+			if (!financeProcess.isSuccess()) {
+				throw new SecurityException("操作失败,请联系管理员");
+			}
+		}
+		return R.data(expenseApplication);
+	}
 }

+ 4 - 4
blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/PutBoxServiceImpl.java

@@ -1621,7 +1621,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 		}*/
 		//计算超期箱使费
 		if (!billsList.isEmpty()) {
-			this.countOverdueFee(putBoxList,tradingBoxList, tradingBoxItemOldList, containersListNew, putBoxItemsOldList);
+			this.countOverdueFee(putBoxList, tradingBoxList, tradingBoxItemOldList, containersListNew, putBoxItemsOldList);
 		}
 		return R.data("操作成功");
 	}
@@ -1742,7 +1742,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 							feeCenterC.setAmountLoc(feeCenterC.getAmount().multiply(feeCenter.getExrate()));
 							feeCenterList.add(feeCenterC);
 						}
-						item.setPodBoxUseDays(overdueDays);
+						item.setPodBoxUseDays(Integer.parseInt(days + ""));
 						putBoxItemsList.add(item);
 						if ("OW(拿),OW(放)".contains(putBox.getBusType())) {
 							TradingBoxItem tradingBoxItem = tradingBoxItemOldList.stream().filter(e -> e.getCode().equals(item.getBoxCode())).findFirst().orElse(null);
@@ -5192,7 +5192,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 					overdueDays = (int) (days - billsHYJK.getPodFreeBoxUseDays());
 				}
 				if (overdueDays != 0) {
-					FeeCenter feeCenter = this.addFeeCenter( item, billsHYJK, fees, storageFeesItems, curExrateList, overdueDays, exrateType);
+					FeeCenter feeCenter = this.addFeeCenter(item, billsHYJK, fees, storageFeesItems, curExrateList, overdueDays, exrateType);
 					if (feeCenter != null) {
 						feeCenterList.add(feeCenter);
 						FeeCenter feeCenterC = new FeeCenter();
@@ -5209,7 +5209,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 						feeCenterC.setAmountLoc(feeCenterC.getAmount().multiply(feeCenter.getExrate()));
 						feeCenterList.add(feeCenterC);
 					}
-					item.setPodBoxUseDays(overdueDays);
+					item.setPodBoxUseDays(Integer.parseInt(days+""));
 					putBoxItemsList.add(item);
 					if ("OW(拿),OW(放)".contains(putBox.getBusType())) {
 						TradingBoxItem tradingBoxItem = tradingBoxItemOldList.stream().filter(e -> e.getCode().equals(item.getBoxCode())).findFirst().orElse(null);

+ 2 - 2
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java

@@ -110,8 +110,8 @@ public class BillsController extends BladeController {
 				.like(Bills::getCorpAttnTel, bills.getCorpAttnName()))
 			.and(ObjectUtils.isNotNull(bills.getCarrierCnName()), i -> i.like(Bills::getCarrierCnName, bills.getCarrierCnName()).or()
 				.like(Bills::getCarrierEnName, bills.getCarrierCnName()).or().like(Bills::getCarrierArgreementNo, bills.getCarrierCnName()))
-			.and(ObjectUtils.isNotNull(bills.getPodCnName()), i -> i.like(Bills::getPodCnName, bills.getPodCnName()).or()
-				.like(Bills::getPodEnName, bills.getPodCnName()).or().like(Bills::getPodCode, bills.getPodCnName()))
+			.and(ObjectUtils.isNotNull(bills.getPodEnName()), i -> i.like(Bills::getPodCnName, bills.getPodEnName()).or()
+				.like(Bills::getPodEnName, bills.getPodEnName()).or().like(Bills::getPodCode, bills.getPodEnName()))
 			.and(ObjectUtils.isNotNull(bills.getPolEnName()), i -> i.like(Bills::getPolCnName, bills.getPolEnName()).or()
 				.like(Bills::getPolEnName, bills.getPolEnName()).or().like(Bills::getPolCode, bills.getPolEnName()))
 			.and(ObjectUtils.isNotNull(bills.getDestinationName()), i -> i.like(Bills::getDestinationName, bills.getDestinationName()).or()

+ 1 - 1
blade-service/blade-los/src/main/java/org/springblade/los/check/controller/AuditProecessController.java

@@ -244,7 +244,7 @@ public class AuditProecessController extends BladeController {
 			auditProecessService.amendsCheck(auditProecess);
 		} else if ("HXCB_SOC".equals(proecess.getCheckType()) || "HXCB_COC".equals(proecess.getCheckType())) {
 			auditProecessService.routeCostCheck(auditProecess);
-		} else if ("FYSQ".equals(proecess.getCheckType())) {
+		} else if ("FYSQ".equals(proecess.getCheckType()) || "FYSQ-C".equals(proecess.getCheckType())) {
 			auditProecessService.pleaseVerifyCostCheck(auditProecess);
 		}
 		return R.data(auditProecess);

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/check/mapper/AuditProecessMapper.java

@@ -46,4 +46,6 @@ public interface AuditProecessMapper extends BaseMapper<LosAuditProecess> {
 	void deteleByBillIdOrGrade(@Param("billId") Long billId, @Param("times") Integer times);
 
 	void deteleByBillIdAndType(@Param("billId")Long billId, @Param("paidApplication")String paidApplication);
+
+	void deteleBySrcBillId(@Param("billId")Long billId);
 }

+ 3 - 0
blade-service/blade-los/src/main/java/org/springblade/los/check/mapper/AuditProecessMapper.xml

@@ -23,6 +23,9 @@
         <result column="fid_status" property="fidStatus"/>
         <result column="times" property="times"/>
     </resultMap>
+    <delete id="deteleBySrcBillId">
+        delete from los_audit_proecess where src_bill_id = #{billId}
+    </delete>
     <delete id="deteleByBillId">
         delete from los_audit_proecess where bill_id = #{billId}
     </delete>

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

@@ -46,6 +46,8 @@ public interface IAuditProecessService extends IService<LosAuditProecess> {
 
     R deteleByBillId(Long billId);
 
+    R deteleBySrcBillId(Long billId);
+
 	void deteleByBillIdOrGrade(Long billId, Integer times);
 	/**
 	 * 海运出口单据审核

+ 10 - 4
blade-service/blade-los/src/main/java/org/springblade/los/check/service/impl/AuditProecessServiceImpl.java

@@ -1507,7 +1507,7 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 				message.setParameter(String.valueOf(auditProecess.getBillId()));
 				message.setMessageType(1);
 				message.setTenantId(AuthUtil.getTenantId());
-				if ("请核费用".equals(auditProecess.getProcessType())) {
+				if ("请核费用".equals(auditProecess.getProcessType()) || "请核费用-付费".equals(auditProecess.getProcessType())) {
 					message.setMessageBody("您有新的费用审核,业务单号:" + proecessTemp.getBillNo() + ","
 						+ "单据日期:" + billsDate + ",请审核。"
 						+ "提交人:" + proecessTemp.getSendName() + "  " + "提交时间" + simpleDateFormat.format(proecessTemp.getSendTime())
@@ -1526,7 +1526,7 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 				auditProecess.setAuditStatus("B");
 				expenseApplication.setStatus("录入");
 				this.updateData(expenseApplication, feeCenterList, "0");
-				if ("请核费用".equals(auditProecess.getProcessType())) {
+				if ("请核费用".equals(auditProecess.getProcessType()) || "请核费用-付费".equals(auditProecess.getProcessType())) {
 					sendMessage.setMessageBody("您的费用审核未通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
 				}
 				R save = messageClient.save(sendMessage);
@@ -1542,7 +1542,7 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 				auditProecess.setAuditStatus("A");
 				expenseApplication.setStatus("审核通过");
 				this.updateData(expenseApplication, feeCenterList, "4");
-				if ("请核费用".equals(auditProecess.getProcessType())) {
+				if ("请核费用".equals(auditProecess.getProcessType()) || "请核费用-付费".equals(auditProecess.getProcessType())) {
 					sendMessage.setMessageBody("您的费用审核已通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
 				}
 				R save = messageClient.save(sendMessage);
@@ -1556,7 +1556,7 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 				auditProecess.setAuditStatus("B");
 				expenseApplication.setStatus("录入");
 				this.updateData(expenseApplication, feeCenterList, "0");
-				if ("请核费用".equals(auditProecess.getProcessType())) {
+				if ("请核费用".equals(auditProecess.getProcessType()) || "请核费用-付费".equals(auditProecess.getProcessType())) {
 					sendMessage.setMessageBody("您的费用审核未通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
 				}
 				R save = messageClient.save(sendMessage);
@@ -1754,6 +1754,12 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 	}
 
 	@Override
+	public R deteleBySrcBillId(Long billId) {
+		baseMapper.deteleBySrcBillId(billId);
+		return R.data("操作成功");
+	}
+
+	@Override
 	public void deteleByBillIdOrGrade(Long billId, Integer times) {
 		baseMapper.deteleByBillIdOrGrade(billId, times);
 	}

+ 10 - 5
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FinAccBillsServiceImpl.java

@@ -317,16 +317,16 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 			throw new RuntimeException("请选择费用信息");
 		}
 		List<FeeCenter> feeCenterList = new ArrayList<>();
-		List<Bills> billsList = new ArrayList<>();
+		/*List<Bills> billsList = new ArrayList<>();
 		List<Long> ids = finAccBills.getFeeCenterList().stream().map(FeeCenter::getPid).collect(Collectors.toList());
 		if (ObjectUtils.isNotNull(ids) && !ids.isEmpty()) {
 			billsList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
 				.eq(Bills::getTenantId, AuthUtil.getTenantId())
 				.eq(Bills::getIsDeleted, 0)
 				.in(Bills::getId, ids));
-		}
+		}*/
 		List<Long> finAccBillsIds = finAccBills.getFeeCenterList().stream().map(FeeCenter::getAccBillId).distinct().collect(Collectors.toList());
-		String finAccBillsBillNo = finAccBills.getFeeCenterList().stream().map(FeeCenter::getBillNo).distinct().collect(Collectors.joining(","));
+//		String finAccBillsBillNo = finAccBills.getFeeCenterList().stream().map(FeeCenter::getBillNo).distinct().collect(Collectors.joining(","));
 		if (!finAccBillsIds.isEmpty()) {
 			List<FinInvoicesItems> finInvoicesItems = finInvoicesItemsMapper.selectList(new LambdaQueryWrapper<FinInvoicesItems>()
 				.eq(FinInvoicesItems::getTenantId, AuthUtil.getTenantId())
@@ -413,16 +413,21 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 			feeCenterItem.setAccStatus(0);
 			feeCenterItem.setAccById(0L);
 			feeCenterItem.setAccByName("");
+			feeCenterItem.setStlPid(null);
+			feeCenterItem.setAuditStatus("0");
+			feeCenterItem.setApplyId(0L);
+			feeCenterItem.setApplyName("");
+			feeCenterItem.setApplyTime(null);
 			feeCenterList.add(feeCenterItem);
 		}
 		feeCenterService.saveOrUpdateBatch(feeCenterList);
-		for (Bills item : billsList) {
+		/*for (Bills item : billsList) {
 			if (item.getBillingStatus() == 0) {
 				throw new RuntimeException("撤销账单失败");
 			}
 			item.setBillingStatus(item.getBillingStatus() - finAccBillsIds.size());
 			billsMapper.updateById(item);
-		}
+		}*/
 		return R.data("操作成功");
 	}