|
|
@@ -164,6 +164,9 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
String aid=TokenManager.getAdminId();
|
|
|
addExpenseAccountLog(in.getId(),status,in.getProcessStatus(),aid,str);
|
|
|
Admin admin = adminMapper.selectByPrimaryKey(aid);
|
|
|
+ if(in.getStatus()==1){
|
|
|
+ in.setProcessStatus(1);
|
|
|
+ }
|
|
|
if (admin.getSuperiorId()==null||admin.getId().equals(admin.getSuperiorId())){
|
|
|
String str2=String.format("重复审核人跳过[%s]。",EAProcessStatus.getDesc(in.getProcessStatus()));
|
|
|
Date date=new Date();
|
|
|
@@ -225,16 +228,13 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
}else if (useEA.getStatus()==3){
|
|
|
addExpenseAccountLogAndNoticEmail(in,4,"修改并发起审核");
|
|
|
}
|
|
|
- if(in.getStatus()==1){
|
|
|
- in.setProcessStatus(1);
|
|
|
- }
|
|
|
+
|
|
|
if (in.getOrderNo()==null){
|
|
|
in.setTargetType(0);
|
|
|
}else {
|
|
|
in.setTargetType(1);
|
|
|
}
|
|
|
- in.setSettlementAmount(useEA.getSettlementAmount());
|
|
|
- //计算本单已扣金额
|
|
|
+ //计算本单已扣金额 如果有选择借支单,则需要修改借支状态
|
|
|
if (in.getDebitId()!=null){
|
|
|
//如果以前没有选择借支,修改报销和借支数据
|
|
|
if (useEA.getDebitId()==null){
|
|
|
@@ -252,12 +252,24 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
|
|
|
private void pushresettingDebit(InputExpenseAccount in, Integer debitId) {
|
|
|
ExpenseAccount debit = expenseAccountMapper.selectByPrimaryKey(debitId);
|
|
|
+ List<ExpenseAccount> list = expenseAccountMapper.selectByDebitId(debitId);
|
|
|
ExpenseAccount newdebit=new ExpenseAccount();
|
|
|
- newdebit.setSettlementAmount(debit.getSettlementAmount().subtract(in.getSettlementAmount()));
|
|
|
- if (newdebit.getSettlementAmount().compareTo(new BigDecimal(0))==0){
|
|
|
+ newdebit.setId(debitId);
|
|
|
+ int minStatus=0;
|
|
|
+ BigDecimal count=new BigDecimal(0);
|
|
|
+ for (ExpenseAccount e : list) {
|
|
|
+ if (e.getStatus()>0)minStatus=e.getStatus();
|
|
|
+ if (!in.getId().equals(e.getId())){
|
|
|
+ count=count.add(e.getSettlementAmount());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ newdebit.setSettlementAmount(count);
|
|
|
+ if (count.compareTo(new BigDecimal(0))==0){
|
|
|
newdebit.setLiquidationStatus(0);
|
|
|
- }else {
|
|
|
+ }else if (count.compareTo(debit.getTotalAmount())<0){
|
|
|
newdebit.setLiquidationStatus(1);
|
|
|
+ }else if (count.compareTo(debit.getTotalAmount())==0){
|
|
|
+ newdebit.setLiquidationStatus(2);
|
|
|
}
|
|
|
expenseAccountMapper.updateByPrimaryKeySelective(newdebit);
|
|
|
}
|
|
|
@@ -269,7 +281,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
ExpenseAccount newDebit=new ExpenseAccount();
|
|
|
newDebit.setId(debit.getId());
|
|
|
//计算剩余需要支付金额
|
|
|
- BigDecimal decbitAmount=in.getTotalAmount().subtract(in.getSettlementAmount());
|
|
|
+ BigDecimal decbitAmount=debit.getTotalAmount().subtract(debit.getSettlementAmount());
|
|
|
//本次金额大于等于需要抵扣金额,则变成完全抵扣,抵扣金额变成本次已付金额
|
|
|
if (in.getTotalAmount().compareTo(decbitAmount)>0){
|
|
|
in.setSettlementAmount(decbitAmount);
|
|
|
@@ -332,7 +344,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
if (useEa.getDebitId()!=null){
|
|
|
ExpenseAccount useDebit=expenseAccountMapper.selectByPrimaryKey(useEa.getDebitId());
|
|
|
if (useDebit.getLiquidationStatus()==2){
|
|
|
- List<ExpenseAccount> expenseAccounts = expenseAccountMapper.selectByDebit(useDebit.getDebitId());
|
|
|
+ List<ExpenseAccount> expenseAccounts = expenseAccountMapper.selectByDebitId(useDebit.getDebitId());
|
|
|
boolean flag=true;
|
|
|
for (ExpenseAccount expenseAccount : expenseAccounts) {
|
|
|
if(expenseAccount.getStatus()!=2){
|
|
|
@@ -507,9 +519,15 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
}
|
|
|
if (useEa.getDebitId()!=null){
|
|
|
ExpenseAccount debit = expenseAccountMapper.selectByPrimaryKey(useEa.getDebitId());
|
|
|
- if (debit!=null&&debit.getTotalAmount()!=null){
|
|
|
- useEa.setDebitTotalAmount(debit.getTotalAmount().subtract(debit.getSettlementAmount()));
|
|
|
+ List<ExpenseAccount> list1 = expenseAccountMapper.selectByDebitId(useEa.getDebitId());
|
|
|
+ BigDecimal count =debit.getTotalAmount();
|
|
|
+ for (ExpenseAccount e : list1) {
|
|
|
+ if (!e.getId().equals(id)){
|
|
|
+ count.subtract(e.getSettlementAmount());
|
|
|
+ }
|
|
|
}
|
|
|
+ if (count.compareTo(new BigDecimal(0))<0)count=new BigDecimal(0);
|
|
|
+ useEa.setDebitTotalAmount(count);
|
|
|
}
|
|
|
return useEa;
|
|
|
}
|
|
|
@@ -579,14 +597,14 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
if (e.getBx()==1){
|
|
|
if (e.getDebitId()!=null){
|
|
|
e.setDk(1);
|
|
|
- e.setDkAmount(e.getBxAmount());
|
|
|
- }
|
|
|
- if (e.getTargetType()==0){
|
|
|
- e.setGdfyAmount(e.getBxAmount());
|
|
|
- }else if (e.getTargetType()==1){
|
|
|
- e.setBxddAmount(e.getBxAmount());
|
|
|
+ e.setDkAmount(e.getBxdkAmount());
|
|
|
}
|
|
|
}
|
|
|
+ if (e.getTargetType()==0){
|
|
|
+ e.setGdfyAmount(e.getBxAmount().add(e.getJzAmount()));
|
|
|
+ }else if (e.getTargetType()==1){
|
|
|
+ e.setBxddAmount(e.getBxAmount().add(e.getJzAmount()));
|
|
|
+ }
|
|
|
//如果不存在就新增
|
|
|
if (!map.keySet().contains(e.getAid())){
|
|
|
List<OutExpenseAccountStatistics> list2=new ArrayList<>();
|
|
|
@@ -601,7 +619,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
|
|
|
List<OutExpenseAccountStatistics> list3 = (List<OutExpenseAccountStatistics>) map.get(s);
|
|
|
if (!list3.isEmpty()){
|
|
|
OutExpenseAccountStatistics out =new OutExpenseAccountStatistics(s);
|
|
|
-
|
|
|
+
|
|
|
for (OutExpenseAccountStatistics e : list3) {
|
|
|
if (out.getAname()==null)out.setAname(e.getAname());
|
|
|
if (e.getBx()!=null)out.setBx(out.getBx()+e.getBx());
|