|
|
@@ -42,7 +42,9 @@ import org.springblade.client.feign.ICorpsDescClient;
|
|
|
import org.springblade.client.feign.ISerialClient;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.purchase.sales.entity.Order;
|
|
|
+import org.springblade.purchase.sales.entity.OrderFees;
|
|
|
import org.springblade.purchase.sales.feign.IOrderDescClient;
|
|
|
+import org.springblade.purchase.sales.feign.IOrderFeesClient;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -76,6 +78,8 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
|
|
|
private ICheckClient iCheckClient;
|
|
|
|
|
|
+ private final IOrderFeesClient orderFeesClient;
|
|
|
+
|
|
|
|
|
|
|
|
|
@Override
|
|
|
@@ -110,7 +114,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
e.setUpdateUser(AuthUtil.getUserId());
|
|
|
e.setUpdateUserName(AuthUtil.getUser().getRoleName());
|
|
|
itemsMapper.updateById(e);
|
|
|
- cancelPayAcc(settlementDTO,e);
|
|
|
+ cancelPayAcc(settlementDTO,e,e.getSrcType());
|
|
|
});
|
|
|
}
|
|
|
model.setItemsList(itemsList);
|
|
|
@@ -154,7 +158,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
e.setCreateUser(AuthUtil.getUserId());
|
|
|
e.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
itemsMapper.insert(e);
|
|
|
- payAcc(settlementDTO,e);
|
|
|
+ payAcc(settlementDTO,e,e.getSrcType());
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
@@ -181,7 +185,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
e.setCreateUser(AuthUtil.getUserId());
|
|
|
e.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
itemsMapper.insert(e);
|
|
|
- payAcc(settlementDTO,e);
|
|
|
+ payAcc(settlementDTO,e,e.getSrcType());
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
@@ -190,7 +194,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
e.setUpdateUser(AuthUtil.getUserId());
|
|
|
e.setUpdateUserName(AuthUtil.getUser().getRoleName());
|
|
|
itemsMapper.updateById(e);
|
|
|
- payAcc(settlementDTO,e);
|
|
|
+ payAcc(settlementDTO,e,e.getSrcType());
|
|
|
}
|
|
|
|
|
|
});
|
|
|
@@ -225,7 +229,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
|
|
|
}
|
|
|
//撤销
|
|
|
- public void cancelPayAcc(SettlementDTO settlementDTO,Items items)
|
|
|
+ public void cancelPayAcc(SettlementDTO settlementDTO,Items items,int type)
|
|
|
{
|
|
|
Long accId = items.getAccId();
|
|
|
if(accId==null)
|
|
|
@@ -251,29 +255,58 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
}
|
|
|
accMapper.updateById(acc);
|
|
|
//修改原业务表数据
|
|
|
- Long srcParentId = acc.getSrcParentId();
|
|
|
- if(srcParentId==null)
|
|
|
- {
|
|
|
- throw new SecurityException("撤销账单失败,未获取到原业务信息");
|
|
|
- }
|
|
|
- Order client = orderDescClient.getById(srcParentId);
|
|
|
- if(client==null)
|
|
|
+ if(type==1)
|
|
|
{
|
|
|
- throw new SecurityException("撤销账单失败,未获取到原业务信息");
|
|
|
+ Long srcParentId = acc.getSrcParentId();
|
|
|
+ if(srcParentId==null)
|
|
|
+ {
|
|
|
+ throw new SecurityException("撤销账单失败,未获取到原业务信息");
|
|
|
+ }
|
|
|
+ Order client = orderDescClient.getById(srcParentId);
|
|
|
+ if(client==null)
|
|
|
+ {
|
|
|
+ throw new SecurityException("撤销账单失败,未获取到原业务信息");
|
|
|
+ }
|
|
|
+ //回退原业务表数据
|
|
|
+ if(client.getSettlmentAmount() == null)
|
|
|
+ {
|
|
|
+ throw new SecurityException("撤销账单失败,原业务表已收金额为空");
|
|
|
+ }
|
|
|
+ client.setSettlmentAmount(client.getSettlmentAmount().subtract(items.getThisAmount()));
|
|
|
+ orderDescClient.updateOrder(client);
|
|
|
}
|
|
|
- //回退原业务表数据
|
|
|
- if(client.getSettlmentAmount() == null)
|
|
|
+ //修改费用明细
|
|
|
+ else if(type==2)
|
|
|
{
|
|
|
- throw new SecurityException("撤销账单失败,原业务表已收金额为空");
|
|
|
+ Long srcFeesId = acc.getSrcFeesId();
|
|
|
+ if(srcFeesId==null)
|
|
|
+ {
|
|
|
+ throw new SecurityException("撤销账单失败,未获取到原业务信息");
|
|
|
+ }
|
|
|
+ OrderFees orderFees=new OrderFees();
|
|
|
+ orderFees.setId(srcFeesId);
|
|
|
+ orderFees.setTenantId(AuthUtil.getTenantId());
|
|
|
+ R<OrderFees> detail = orderFeesClient.detail(orderFees);
|
|
|
+ if(detail==null)
|
|
|
+ {
|
|
|
+ throw new SecurityException("修改原单据失败");
|
|
|
+ }
|
|
|
+ OrderFees fees = detail.getData();
|
|
|
+ //回退原业务表数据
|
|
|
+ if(fees.getSettlmentAmount() == null)
|
|
|
+ {
|
|
|
+ throw new SecurityException("撤销账单失败,原业务表已收金额为空");
|
|
|
+ }
|
|
|
+ fees.setSettlmentAmount(fees.getSettlmentAmount().subtract(items.getThisAmount()));
|
|
|
+ orderFeesClient.submit(fees);
|
|
|
}
|
|
|
- client.setSettlmentAmount(client.getSettlmentAmount().subtract(items.getThisAmount()));
|
|
|
- orderDescClient.updateOrder(client);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//修改财务账单和订单表已收金额
|
|
|
- public void payAcc(SettlementDTO settlementDTO,Items items)
|
|
|
+ public void payAcc(SettlementDTO settlementDTO,Items items,int type)
|
|
|
{
|
|
|
Long accId = items.getAccId();
|
|
|
if(accId==null)
|
|
|
@@ -295,18 +328,46 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
}
|
|
|
accMapper.updateById(acc);
|
|
|
//修改原业务表数据
|
|
|
- Long srcParentId = acc.getSrcParentId();
|
|
|
- if(srcParentId==null)
|
|
|
+ if(type==1)
|
|
|
+ { Long srcParentId = acc.getSrcParentId();
|
|
|
+ if(srcParentId==null)
|
|
|
+ {
|
|
|
+ throw new SecurityException("操作失败,未获取到原业务信息");
|
|
|
+ }
|
|
|
+ Order client = orderDescClient.getById(srcParentId);
|
|
|
+ if(client==null)
|
|
|
+ {
|
|
|
+ throw new SecurityException("修改原单据失败");
|
|
|
+ }
|
|
|
+ client.setSettlmentAmount(client.getSettlmentAmount()!=null?client.getSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
|
|
|
+ orderDescClient.updateOrder(client);
|
|
|
+
|
|
|
+ }
|
|
|
+ //修改费用明细数据
|
|
|
+ else if(type==2)
|
|
|
{
|
|
|
- throw new SecurityException("操作失败,未获取到原业务信息");
|
|
|
+ Long srcFeesId = acc.getSrcFeesId();
|
|
|
+ if(srcFeesId==null)
|
|
|
+ {
|
|
|
+ throw new SecurityException("操作失败,未获取到原业务信息");
|
|
|
+ }
|
|
|
+ OrderFees orderFees=new OrderFees();
|
|
|
+ orderFees.setId(srcFeesId);
|
|
|
+ orderFees.setTenantId(AuthUtil.getTenantId());
|
|
|
+ R<OrderFees> detail = orderFeesClient.detail(orderFees);
|
|
|
+ if(detail==null)
|
|
|
+ {
|
|
|
+ throw new SecurityException("修改原单据失败");
|
|
|
+ }
|
|
|
+ OrderFees fees = detail.getData();
|
|
|
+ fees.setSettlmentAmount(fees.getSettlmentAmount()!=null?fees.getSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
|
|
|
+ orderFeesClient.submit(fees);
|
|
|
}
|
|
|
- Order client = orderDescClient.getById(srcParentId);
|
|
|
- if(client==null)
|
|
|
- {
|
|
|
- throw new SecurityException("修改原单据失败");
|
|
|
+ else
|
|
|
+ {
|
|
|
+ throw new SecurityException("操作失败,财务类型为空无法结算");
|
|
|
}
|
|
|
- client.setSettlmentAmount(client.getSettlmentAmount()!=null?client.getSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
|
|
|
- orderDescClient.updateOrder(client);
|
|
|
+
|
|
|
//验证结算总金额是否超限
|
|
|
|
|
|
/*BigDecimal orderAmount = client.getSettlmentAmount();
|
|
|
@@ -391,6 +452,8 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
public void check(Settlement settlement)
|
|
|
{
|
|
|
Settlement selectOne = baseMapper.selectById(settlement.getId());
|
|
|
+ List<Items> items = itemsMapper.selectList(new LambdaQueryWrapper<Items>().eq(Items::getPid, settlement.getId()));
|
|
|
+
|
|
|
//判断是否有审批流,如果审批流已开启就进入审批流,否则直接走申请通过
|
|
|
AuditPathsActs pathsActs = iCheckClient.getActsByActId(1, "check_status");
|
|
|
//没开启审批流直接走 通过流程
|
|
|
@@ -407,6 +470,10 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
List<AuditPathsLevels> auditPathsLevels = iCheckClient.listLevelsByActId(1, "check_status");
|
|
|
|
|
|
AuditProecessDTO auditProecessDTO=new AuditProecessDTO();
|
|
|
+ //追加跳转路由url
|
|
|
+ auditProecessDTO.setUrl("to_finance_page");
|
|
|
+ //增加审批类型
|
|
|
+ auditProecessDTO.setProcessType("付费审批");
|
|
|
auditProecessDTO.setPathsLevelsList(auditPathsLevels);
|
|
|
auditProecessDTO.setActId(1);
|
|
|
auditProecessDTO.setSrcBillId(selectOne.getId());
|
|
|
@@ -550,6 +617,8 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
acc.setStatus(0);
|
|
|
acc.setCreateUser(AuthUtil.getUserId());
|
|
|
acc.setCostType(e.getCostType());
|
|
|
+ acc.setSrcFeesId(e.getSrcFeesId());
|
|
|
+ acc.setSrcType(e.getSrcType());
|
|
|
accMapper.insert(acc);
|
|
|
|
|
|
//绑定accId,从申请表传递给结算表,后续结算时操作账单表的结算金额
|