|
|
@@ -226,8 +226,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){
|
|
|
@@ -248,12 +247,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());
|
|
|
@@ -324,12 +335,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
|
|
|
@@ -623,7 +643,11 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
list.add(notice);
|
|
|
EmailBo emailBo=new EmailBo(NoticeStatus.getValueByCode(noticeStatus),a.getEmail(),str);
|
|
|
asyncUtils.send(emailBo);
|
|
|
- weChatUtils.addExpenseAccountWeChatNotice(a.getExpenseOpenId(),status,in.getId(),date,aname,str);
|
|
|
+ try {
|
|
|
+ weChatUtils.addExpenseAccountWeChatNotice(a.getExpenseOpenId(),status,in.getId(),date,aname,str);
|
|
|
+ }catch (Exception e){
|
|
|
+ throw new BusinessException("网络通信异常,请稍后再试。");
|
|
|
+ }
|
|
|
}
|
|
|
asyncUtils.addNoticeBatch(list);
|
|
|
}
|
|
|
@@ -693,10 +717,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()));
|
|
|
@@ -715,7 +741,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);
|
|
|
@@ -736,7 +762,9 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
List<ExpenseAccountExamine> expenseAccountExamines = expenseAccountExamineMapper.selectByEaidAndProcessStatus(id, res.getProcessStatus());
|
|
|
for (ExpenseAccountExamine e : expenseAccountExamines) {
|
|
|
if (e.getAuditor().equals(TokenManager.getAdminId())){
|
|
|
- res.setExamine(1);
|
|
|
+ if (res.getStatus()==1){
|
|
|
+ res.setExamine(1);
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -765,19 +793,31 @@ 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,"修改并发起审核");
|
|
|
}
|
|
|
+ update.setStatus(in.getStatus());
|
|
|
+ update.setProcessStatus(outExpenseAccount.getProcessStatus());
|
|
|
+ update.setId(in.getId());
|
|
|
+ update.setExamineName(outExpenseAccount.getExamineName());
|
|
|
+ expenseAccountMapper.updateByPrimaryKeySelective(update);
|
|
|
}else if (in.getStatus()==4){
|
|
|
expenseAccountMapper.updateByMainId(in.getId(),0);
|
|
|
+ expenseAccountMapper.deleteByPrimaryKey(in.getId());
|
|
|
addExpenseAccountLog(in.getId(),4,0,in.getAid(),"撤销报销审核");
|
|
|
}
|
|
|
- update.setStatus(in.getStatus());
|
|
|
- update.setProcessStatus(outExpenseAccount.getProcessStatus());
|
|
|
- update.setId(in.getId());
|
|
|
- update.setExamineName(outExpenseAccount.getExamineName());
|
|
|
- return expenseAccountMapper.updateByPrimaryKeySelective(update);
|
|
|
+ return 1;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -875,12 +915,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;
|
|
|
}
|
|
|
|