|
|
@@ -244,8 +244,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
|
|
|
//计算总金额
|
|
|
if (in.getTotalAmount()==null){
|
|
|
- in.setTotalAmount(expenseAccountDetailsMapper.selectAmountCountByEAid(in.getId()));
|
|
|
- in.setRealAmount(in.getTotalAmount());
|
|
|
+ pushExpenseAccountAmount(in);
|
|
|
}
|
|
|
in.setProcessStatus(0);
|
|
|
if (in.getOrderNo()==null){
|
|
|
@@ -266,12 +265,24 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
}
|
|
|
}
|
|
|
if (in.getSettlementAmount()==null)in.setSettlementAmount(useEA.getSettlementAmount());
|
|
|
- in.setAmount(in.getTotalAmount().subtract(in.getSettlementAmount()));
|
|
|
+ in.setAmount(in.getRealAmount().subtract(in.getSettlementAmount()));
|
|
|
in.setRealAmount(in.getAmount());
|
|
|
in.setStatus(0);
|
|
|
return expenseAccountMapper.updateByPrimaryKeySelective(in);
|
|
|
}
|
|
|
|
|
|
+ private void pushExpenseAccountAmount(ExpenseAccount in) {
|
|
|
+ List<OutExpenseAccountDetails> list = expenseAccountDetailsMapper.selectByEAid(in.getId());
|
|
|
+ BigDecimal totalAmount = BigDecimal.ZERO;
|
|
|
+ BigDecimal realAmount = BigDecimal.ZERO;
|
|
|
+ for (OutExpenseAccountDetails e : list) {
|
|
|
+ totalAmount=totalAmount.add(e.getAmount());
|
|
|
+ realAmount=realAmount.add(e.getRealAmount());
|
|
|
+ }
|
|
|
+ in.setTotalAmount(totalAmount);
|
|
|
+ in.setRealAmount(realAmount);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public Object updateDebitId(InputExpenseAccount in) {
|
|
|
OutExpenseAccount useEA = expenseAccountMapper.selectByid(in.getId());
|
|
|
@@ -342,12 +353,21 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
}
|
|
|
in.setRealAmount(in.getAmount());
|
|
|
expenseAccountDetailsMapper.insertSelective(in);
|
|
|
+ ExpenseAccount ea =new ExpenseAccount();
|
|
|
+ ea.setId(in.getEaid());
|
|
|
+ pushExpenseAccountAmount(ea);
|
|
|
+ expenseAccountMapper.updateByPrimaryKeySelective(ea);
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public int deleteDetails(Integer id) {
|
|
|
- return expenseAccountDetailsMapper.deleteByPrimaryKey(id);
|
|
|
+ expenseAccountDetailsMapper.deleteByPrimaryKey(id);
|
|
|
+ ExpenseAccount ea =new ExpenseAccount();
|
|
|
+ ea.setId(id);
|
|
|
+ pushExpenseAccountAmount(ea);
|
|
|
+ expenseAccountMapper.updateByPrimaryKeySelective(ea);
|
|
|
+ return 1;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -725,10 +745,12 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
in.setEaaid(eaaid);
|
|
|
BigDecimal count = new BigDecimal(0);
|
|
|
BigDecimal amount = new BigDecimal(0);
|
|
|
+ BigDecimal realAmount = new BigDecimal(0);
|
|
|
List<String> typeList = new ArrayList<String>();
|
|
|
for (ExpenseAccount e : list) {
|
|
|
count=count.add(e.getTotalAmount());
|
|
|
amount=amount.add(e.getAmount());
|
|
|
+ realAmount=realAmount.add(e.getRealAmount());
|
|
|
StringBuffer types=new StringBuffer();
|
|
|
if (e.getType()!=0){
|
|
|
types=types.append(EATypes.getDescByCode(e.getType()));
|
|
|
@@ -747,7 +769,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
}
|
|
|
in.setTotalAmount(count);
|
|
|
in.setAmount(amount);
|
|
|
- in.setRealAmount(amount);
|
|
|
+ in.setRealAmount(realAmount);
|
|
|
in.setExpenseMain(1);
|
|
|
in.setTypeOther(String.join(",",typeList));
|
|
|
expenseAccountMapper.insertSelective(in);
|
|
|
@@ -799,6 +821,16 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
if (in.getEaaid()!=null)update.setEaaid(in.getEaaid());
|
|
|
addExpenseAccountExamine(in.getId(),update);
|
|
|
if (outExpenseAccount.getStatus()==0){
|
|
|
+ //补旧日志
|
|
|
+ MainExpenseAccount mianEA = expenseAccountMapper.selectByMainId(in.getId());
|
|
|
+ List<Integer> collect = mianEA.getSonList().stream().map(SonExpenseAccount::getId).collect(Collectors.toList());
|
|
|
+ if (!collect.isEmpty()){
|
|
|
+ Integer i = expenseAccountMapper.selectDeleteIdBySonId(collect.get(0));
|
|
|
+ if (i !=null)
|
|
|
+ expenseAccountLogMapper.updateUseLogByUseId(in.getId(),i);
|
|
|
+ expenseAccountLogMapper.deleteByeaid(i);
|
|
|
+ expenseRelationshipMapper.deleteByPrimaryKey(i);
|
|
|
+ }
|
|
|
addExpenseAccountLogAndNoticEmail(outExpenseAccount,outExpenseAccount.getStatus(),"发起报销审核");
|
|
|
}else if (outExpenseAccount.getStatus()==3){
|
|
|
addExpenseAccountLogAndNoticEmail(outExpenseAccount,4,"修改并发起审核");
|
|
|
@@ -811,8 +843,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
}else if (in.getStatus()==4){
|
|
|
expenseAccountMapper.updateByMainId(in.getId(),0);
|
|
|
expenseAccountMapper.deleteByPrimaryKey(in.getId());
|
|
|
- expenseAccountExamineMapper.deleteByEaid(in.getId());
|
|
|
- expenseRelationshipMapper.deleteByPrimaryKey(in.getId());
|
|
|
+ addExpenseAccountLog(in.getId(),4,0,in.getAid(),"撤销报销审核");
|
|
|
}
|
|
|
return 1;
|
|
|
}
|
|
|
@@ -914,12 +945,15 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
|
|
|
@Override
|
|
|
public Object updateRealAmount(Integer type, Integer id, BigDecimal amount) {
|
|
|
- ExpenseAccountDetails ea= new ExpenseAccountDetails();
|
|
|
- ea.setId(id);
|
|
|
- ea.setRealAmount(amount);
|
|
|
- expenseAccountDetailsMapper.updateByPrimaryKeySelective(ea);
|
|
|
- expenseAccountMapper.updateSonByDetId(id);
|
|
|
- expenseAccountMapper.updateMainByDetId(id);
|
|
|
+ ExpenseAccountDetails ea= new ExpenseAccountDetails();
|
|
|
+ ea.setId(id);
|
|
|
+ ea.setRealAmount(amount);
|
|
|
+ String name=TokenManager.getAdminToken().getName();
|
|
|
+ Integer eaid = expenseAccountDetailsMapper.selectExpenseAccountById(id);
|
|
|
+ addExpenseAccountLog(eaid,5,3,TokenManager.getAdminId(),String.format("财务[%s]修改实际报销金额为%s。",name,amount));
|
|
|
+ expenseAccountDetailsMapper.updateByPrimaryKeySelective(ea);
|
|
|
+ expenseAccountMapper.updateSonByDetId(id);
|
|
|
+ expenseAccountMapper.updateMainByDetId(id);
|
|
|
return 1;
|
|
|
}
|
|
|
|