|
|
@@ -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);
|
|
|
+ }
|
|
|
}
|