|
|
@@ -109,6 +109,8 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
|
|
|
private ImportAsyncService importAsyncService;
|
|
|
@Autowired
|
|
|
private IncomeTaskRelationshipService incomeTaskRelationshipService;
|
|
|
+ @Autowired
|
|
|
+ private SettlementDocumentaryFeesSumService settlementDocumentaryFeesSumService;
|
|
|
|
|
|
@Value("${upload.file.path}")
|
|
|
private String uploadPath;
|
|
|
@@ -1593,6 +1595,87 @@ handlingProportion,
|
|
|
return HttpResult.ok();
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public HttpResult<Object> batchSumBalance(InsPlyIncomeVo insPlyIncomeVo) {
|
|
|
+
|
|
|
+ List<InsPlyIncomeVo> multipleSelection = insPlyIncomeVo.getMultipleSelection();
|
|
|
+ HashMap<String, Object> params = new HashMap<>();
|
|
|
+ BigDecimal settleMentAmount = BigDecimal.ZERO;
|
|
|
+ BigDecimal settleNotMentAmount = BigDecimal.ZERO;
|
|
|
+ for (InsPlyIncomeVo item : multipleSelection){
|
|
|
+ SettlementDocumentaryFeesEntity settlementDocumentaryFeesVo = new SettlementDocumentaryFeesEntity();
|
|
|
+ if(item.getSettlementAmount() ==null || item .getSettlementAmount().compareTo(BigDecimal.ZERO) <0){
|
|
|
+ throw new SystemException("请输入正确金额");
|
|
|
+ }
|
|
|
+ String id = item.getId();
|
|
|
+ SettlementDocumentaryFeesEntity settlementDocumentaryFeesEntity = settlementDocumentaryFeesService.getBaseMapper().selectById(id); // 开票
|
|
|
+ BigDecimal invoicedNotSettledAmount = settlementDocumentaryFeesEntity.getInvoicedNotSettledAmount();//未结算金额
|
|
|
+ if(item.getSettlementAmount().compareTo(invoicedNotSettledAmount) >0){
|
|
|
+ throw new SystemException("结算金额大于未结算金额");
|
|
|
+ }
|
|
|
+ if(item.getSettlementAmount().compareTo(BigDecimal.ZERO) >0){
|
|
|
+ settlementDocumentaryFeesVo.setInvoiceId(settlementDocumentaryFeesEntity.getInvoicId()); //开票号
|
|
|
+ settlementDocumentaryFeesVo.setSettlementTime(insPlyIncomeVo.getSettlementTime()); //结算时间
|
|
|
+ settlementDocumentaryFeesVo.setSettlementStatus("2"); //2为结算状态
|
|
|
+ settlementDocumentaryFeesVo.setCompanyId(settlementDocumentaryFeesEntity.getCompanyId()); // 保险公司id
|
|
|
+ settlementDocumentaryFeesVo.setPartnerCompaniesId(settlementDocumentaryFeesEntity.getPartnerCompaniesId()); //合作公司id
|
|
|
+ settlementDocumentaryFeesVo.setUnsettledAmount(insPlyIncomeVo.getInvoicCommissionFeevalue().subtract(insPlyIncomeVo.getSettlementAmount())); //未结算金额
|
|
|
+ settlementDocumentaryFeesVo.setIsNotCar(settlementDocumentaryFeesEntity.getIsNotCar()); // 是否是非车
|
|
|
+ settlementDocumentaryFeesVo.setInvoicingMethod(settlementDocumentaryFeesEntity.getInvoicingMethod()); //开票方式
|
|
|
+ settlementDocumentaryFeesVo.setTaxPoints(settlementDocumentaryFeesEntity.getTaxPoints()); //税点
|
|
|
+ settlementDocumentaryFeesVo.setSettlementImageId(settlementDocumentaryFeesEntity.getSettlementImageId());
|
|
|
+ if ("0".equals(insPlyIncomeVo.getInvoicingMethod())) {
|
|
|
+ settlementDocumentaryFeesVo.setExpendAmount(settlementDocumentaryFeesEntity.getSettlementAmount().multiply(BigDecimal.ONE.subtract(insPlyIncomeVo.getTaxPoints().divide(new BigDecimal(100)))));
|
|
|
+ } else {
|
|
|
+ settlementDocumentaryFeesVo.setExpendAmount(settlementDocumentaryFeesEntity.getSettlementAmount()); //进账金额
|
|
|
+ }
|
|
|
+ settlementDocumentaryFeesVo.setSettlementAmount(insPlyIncomeVo.getSettlementAmount()); //进账金额
|
|
|
+ settlementDocumentaryFeesVo.setHandlingFeesStatus(settlementDocumentaryFeesEntity.getHandlingFeesStatus());
|
|
|
+ settlementDocumentaryFeesVo.setTotalAmount(insPlyIncomeVo.getInvoicCommissionFeevalue());
|
|
|
+ settlementDocumentaryFeesVo.setCreateTime(LocalDateTime.now());
|
|
|
+ settlementDocumentaryFeesVo.setParentId(insPlyIncomeVo.getId());
|
|
|
+ settlementDocumentaryFeesVo.setAgreementType("2"); //1平台 2 保险
|
|
|
+
|
|
|
+ // 生成跟单费结算记录
|
|
|
+ SettlementDocumentaryLogEntity settlementDocumentaryLogEntity = new SettlementDocumentaryLogEntity();
|
|
|
+ settlementDocumentaryLogEntity.setAmount(settlementDocumentaryFeesVo.getSettlementAmount()); // 结算金额
|
|
|
+ settlementDocumentaryLogEntity.setSettlementDocumentaryId(settlementDocumentaryFeesEntity.getId()); // 关联id
|
|
|
+ settlementDocumentaryLogEntity.setAmountType("2"); //跟单费结算
|
|
|
+ settlementDocumentaryLogEntity.setCreateTime(new Date());
|
|
|
+ settlementDocumentaryFeesService.getBaseMapper().insert(settlementDocumentaryFeesVo);
|
|
|
+ settlementDocumentaryLogService.save(settlementDocumentaryLogEntity);
|
|
|
+ //修改开票金额
|
|
|
+
|
|
|
+ BigDecimal add = settlementDocumentaryFeesEntity.getInvoicedSettledAmount().add(insPlyIncomeVo.getSettlementAmount());
|
|
|
+ settlementDocumentaryFeesEntity.setInvoicedSettledAmount(add);
|
|
|
+
|
|
|
+ BigDecimal subtract = settlementDocumentaryFeesEntity.getTotalAmount().subtract(add);
|
|
|
+ settlementDocumentaryFeesEntity.setInvoicedNotSettledAmount(subtract);
|
|
|
+
|
|
|
+ if (subtract.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
+ settlementDocumentaryFeesEntity.setCompletionStatus("2");
|
|
|
+ } else if (subtract.compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ settlementDocumentaryFeesEntity.setCompletionStatus("1");
|
|
|
+ }
|
|
|
+ settlementDocumentaryFeesService.updateById(settlementDocumentaryFeesEntity);
|
|
|
+ settleMentAmount = settleMentAmount.add(settlementDocumentaryFeesEntity.getInvoicedSettledAmount());
|
|
|
+ settleNotMentAmount = settleNotMentAmount.add(settlementDocumentaryFeesEntity.getInvoicedNotSettledAmount());
|
|
|
+ }
|
|
|
+// 更新金额
|
|
|
+
|
|
|
+
|
|
|
+ SettlementDocumentaryFeesSumEntity settlementDocumentaryFeesSumEntity = settlementDocumentaryFeesSumService.getById(insPlyIncomeVo.getSettlementSumId());
|
|
|
+ settlementDocumentaryFeesSumEntity.setInvoicedSettledAmount(settleMentAmount);
|
|
|
+ settlementDocumentaryFeesSumEntity.setInvoicedNotSettledAmount(settleNotMentAmount);
|
|
|
+ if (settleNotMentAmount.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
+ settlementDocumentaryFeesSumEntity.setCompletionStatus("2");
|
|
|
+ } else if (settleNotMentAmount.compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ settlementDocumentaryFeesSumEntity.setCompletionStatus("1");
|
|
|
+ }
|
|
|
+ settlementDocumentaryFeesSumService.updateById(settlementDocumentaryFeesSumEntity);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
/**
|
|
|
* @param insPlyIncomeVo
|
|
|
* @return
|
|
|
@@ -1975,9 +2058,39 @@ handlingProportion,
|
|
|
} else {
|
|
|
settlementDocumentaryFeesVo.setExpendAmount(insPlyIncomeVo.getSettlementAmount());
|
|
|
}
|
|
|
+// 跟单生成批次表
|
|
|
+ SettlementDocumentaryFeesSumEntity settlementDocumentaryFeesSumEntity = this.saveSumSettlement(insPlyIncomeVo);
|
|
|
+ settlementDocumentaryFeesVo.setSettlementSumId(settlementDocumentaryFeesSumEntity.getId());
|
|
|
return settlementDocumentaryFeesService.inertSettle(settlementDocumentaryFeesVo);
|
|
|
}
|
|
|
|
|
|
+ private SettlementDocumentaryFeesSumEntity saveSumSettlement(InsPlyIncomeVo insPlyIncomeVo) {
|
|
|
+ String handlingFeesStatus = insPlyIncomeVo.getHandlingFeesStatus();
|
|
|
+ SettlementDocumentaryFeesSumEntity settlementDocumentaryFeesSumEntity = new SettlementDocumentaryFeesSumEntity();
|
|
|
+ BigDecimal totalAmount = BigDecimal.ZERO;
|
|
|
+ if("1".equals(handlingFeesStatus)){
|
|
|
+ List<InsPlyIncomeVo> nowInsPlyIncomeVo = insPlyIncomeVo.getMultipleSelection();
|
|
|
+ for (InsPlyIncomeVo item: nowInsPlyIncomeVo ){
|
|
|
+ totalAmount = totalAmount.add(item.getSettlementAmount()) ;
|
|
|
+ }
|
|
|
+ settlementDocumentaryFeesSumEntity.setPartnerCompaniesId(insPlyIncomeVo.getPartnerCompaniesId());
|
|
|
+ settlementDocumentaryFeesSumEntity.setCompanyId(insPlyIncomeVo.getCompanyId());
|
|
|
+ settlementDocumentaryFeesSumEntity.setCreateTime(new Date());
|
|
|
+ settlementDocumentaryFeesSumEntity.setInvoicId(insPlyIncomeVo.getInvoicId());
|
|
|
+ settlementDocumentaryFeesSumEntity.setInvoicingMethod(insPlyIncomeVo.getInvoicingMethod());
|
|
|
+ settlementDocumentaryFeesSumEntity.setIsNotCar(insPlyIncomeVo.getIsNotCar());
|
|
|
+ settlementDocumentaryFeesSumEntity.setSettlementStatus("1");
|
|
|
+ settlementDocumentaryFeesSumEntity.setUserId(BaseController.getUser().getId());
|
|
|
+ settlementDocumentaryFeesSumEntity.setInvoicedSettledAmount(BigDecimal.ZERO);
|
|
|
+ settlementDocumentaryFeesSumEntity.setCompletionStatus("0");
|
|
|
+ settlementDocumentaryFeesSumEntity.setTotalAmount(totalAmount);// 开票总额
|
|
|
+ settlementDocumentaryFeesSumEntity.setInvoicedNotSettledAmount(totalAmount);
|
|
|
+ settlementDocumentaryFeesSumService.getBaseMapper().insert(settlementDocumentaryFeesSumEntity);
|
|
|
+ return settlementDocumentaryFeesSumEntity;
|
|
|
+ }
|
|
|
+ return settlementDocumentaryFeesSumEntity;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public HttpResult pinHandlingexcel(InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) {
|
|
|
HashMap<String, Object> params = new HashMap<>();
|
|
|
@@ -2258,11 +2371,14 @@ handlingProportion,
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional
|
|
|
public HttpResult<Object> singleInvoic(InsPlyIncomeVo insPlyIncomeVo) {
|
|
|
|
|
|
// 通过ids 查出跟单非结算单
|
|
|
SettlementDocumentaryFeesVo settlementDocumentaryFeesVo = new SettlementDocumentaryFeesVo(); // 生成跟单费结算表
|
|
|
if (!CollectionUtils.isEmpty(insPlyIncomeVo.getMultipleSelection())) {
|
|
|
+ SettlementDocumentaryFeesSumEntity settlementDocumentaryFeesSumEntity = this.saveSumSettlement(insPlyIncomeVo);
|
|
|
+
|
|
|
for (InsPlyIncomeVo insPlyIncomeVo1 : insPlyIncomeVo.getMultipleSelection()) {
|
|
|
|
|
|
insPlyIncomeVo.setSettlementAmount(insPlyIncomeVo1.getSettlementAmount());
|
|
|
@@ -2325,6 +2441,7 @@ handlingProportion,
|
|
|
BigDecimal settlementAmount = insPlyIncomeVo.getSettlementAmount();
|
|
|
settlementDocumentaryFeesVo.setExpendAmount(settlementAmount.multiply(BigDecimal.ONE.subtract(insPlyIncomeVo.getTaxPoints().divide(new BigDecimal(100)))));
|
|
|
}
|
|
|
+ settlementDocumentaryFeesVo.setSettlementSumId(settlementDocumentaryFeesSumEntity.getId());
|
|
|
settlementDocumentaryFeesService.inertSettle(settlementDocumentaryFeesVo);
|
|
|
}
|
|
|
}
|
|
|
@@ -2520,4 +2637,6 @@ handlingProportion,
|
|
|
return HttpResult.ok();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
}
|