|
|
@@ -87,6 +87,8 @@ import org.springblade.purchase.sales.entity.OrderItems;
|
|
|
import org.springblade.purchase.sales.feign.IOrderDescClient;
|
|
|
import org.springblade.purchase.sales.feign.IOrderFeesClient;
|
|
|
import org.springblade.purchase.sales.feign.IOrderItemsClient;
|
|
|
+import org.springblade.salesPart.feign.IMaintenanceClient;
|
|
|
+import org.springblade.salesPart.maintenance.entity.Maintenance;
|
|
|
import org.springblade.system.feign.ISysClient;
|
|
|
import org.springblade.system.user.entity.User;
|
|
|
import org.springblade.system.user.feign.IUserClient;
|
|
|
@@ -169,6 +171,8 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
|
|
|
private final InvoiceItemMapper invoiceItemMapper;
|
|
|
|
|
|
+ private final IMaintenanceClient maintenanceClient;
|
|
|
+
|
|
|
private static final String DEFAULT_CHARSET = "UTF-8";
|
|
|
|
|
|
private static final String METHOD_POST = "POST";
|
|
|
@@ -913,6 +917,17 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
shippingFeesR.getData().setSettlementAmount(decimal);
|
|
|
shippingFeesR.getData().setSettlementDate(null);
|
|
|
oceanShippingBillClient.updateOceanShippingFees(shippingFeesR.getData());
|
|
|
+ } else if (type == 12) {
|
|
|
+ Long srcFeesId = acc.getSrcFeesId();
|
|
|
+ if (srcFeesId == null) {
|
|
|
+ throw new SecurityException("操作失败,未获取到原业务信息");
|
|
|
+ }
|
|
|
+ Maintenance maintenance = new Maintenance();
|
|
|
+ maintenance.setStatus(4);
|
|
|
+ maintenance.setPaymentStatus("1");
|
|
|
+ maintenance.setSettlementAmount(new BigDecimal("0.00"));
|
|
|
+ maintenance.setId(acc.getSrcParentId());
|
|
|
+ maintenanceClient.updateMaintenance(maintenance);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -1199,11 +1214,25 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
accMapper.updateById(acc);
|
|
|
shippingFeesR.getData().setSettlementDate(new Date());
|
|
|
oceanShippingBillClient.updateOceanShippingFees(shippingFeesR.getData());
|
|
|
+ } else if (type == 12) {
|
|
|
+ BigDecimal receivedAmount = new BigDecimal("0.00");
|
|
|
+ if (ObjectUtils.isNotNull(items.getCurrentAmount())) {
|
|
|
+ receivedAmount = items.getCurrentAmount().add(ObjectUtils.isNotNull(items.getMemberBalance()) ? items.getMemberBalance() : new BigDecimal("0.00"));
|
|
|
+ } else {
|
|
|
+ receivedAmount = items.getThisAmount().add(ObjectUtils.isNotNull(items.getMemberBalance()) ? items.getMemberBalance() : new BigDecimal("0.00"));
|
|
|
+ }
|
|
|
+ receivedAmount = receivedAmount.add(acc.getSettlementAmount());
|
|
|
+ Maintenance maintenance = new Maintenance();
|
|
|
+ maintenance.setId(acc.getSrcId());
|
|
|
+ maintenance.setSettlementAmount(receivedAmount);
|
|
|
+ maintenance.setStatus(5);
|
|
|
+ maintenance.setPaymentStatus("2");
|
|
|
+ maintenanceClient.updateMaintenance(maintenance);
|
|
|
+ acc.setSettlementAmount(receivedAmount);
|
|
|
+ accMapper.updateById(acc);
|
|
|
} else {
|
|
|
throw new SecurityException("操作失败,财务类型为空无法结算");
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
//验证结算总金额是否超限
|
|
|
|
|
|
/*BigDecimal orderAmount = client.getSettlmentAmount();
|
|
|
@@ -3563,4 +3592,126 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
baseMapper.deleteBatchIds(idList);
|
|
|
return true;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void paymentApplyPartsQB(ApplyDTO dto) {
|
|
|
+ Acc acc = new Acc();
|
|
|
+ LambdaQueryWrapper<Acc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(Acc::getIsDeleted, 0);
|
|
|
+ if (ObjectUtils.isNotNull(dto.getTenantId())) {
|
|
|
+ lambdaQueryWrapper.eq(Acc::getTenantId, dto.getTenantId());
|
|
|
+ } else {
|
|
|
+ lambdaQueryWrapper.eq(Acc::getTenantId, AuthUtil.getTenantId());
|
|
|
+ }
|
|
|
+ lambdaQueryWrapper.eq(Acc::getSrcParentId, dto.getSrcParentId())
|
|
|
+ .eq(Acc::getSrcSysno, dto.getSrcSysno());
|
|
|
+ Acc selectAcc = accMapper.selectOne(lambdaQueryWrapper);
|
|
|
+ if (ObjectUtils.isNull(selectAcc)) {
|
|
|
+ BeanUtils.copyProperties(dto, acc);
|
|
|
+ acc.setAccDate(new Date());
|
|
|
+ acc.setCreateTime(new Date());
|
|
|
+ accMapper.insert(acc);
|
|
|
+ } else {
|
|
|
+ BeanUtils.copyProperties(selectAcc, acc);
|
|
|
+ BeanUtils.copyProperties(dto, acc);
|
|
|
+ Long id = selectAcc.getId();
|
|
|
+ if (ObjectUtils.isNotNull(dto.getSettlementList()) && dto.getSettlementList().size() > 0) {
|
|
|
+ for (Settlement settlement : dto.getSettlementList()) {
|
|
|
+ if (settlement.getId() == null) {
|
|
|
+ Settlement model = new Settlement();
|
|
|
+ model.setSalesCompany(dto.getCompanyid());
|
|
|
+ model.setSrcOrderno(acc.getAccSysNo());
|
|
|
+ model.setBillType(settlement.getBillType());
|
|
|
+ model.setCorpId(acc.getCorpId());
|
|
|
+ model.setCorpName(acc.getCorpName());
|
|
|
+ model.setPlanSettlementDate(acc.getRetrieval());
|
|
|
+ model.setSettlementDate(settlement.getSettlementDate());
|
|
|
+ model.setCurrency(acc.getCurrency());
|
|
|
+ model.setExchangeRate(acc.getExchangeRate());
|
|
|
+ model.setAmount(settlement.getAmount());
|
|
|
+ model.setAccountName(settlement.getAccountName());
|
|
|
+ model.setAccountBank(settlement.getAccountBank());
|
|
|
+ model.setAccountNo(settlement.getAccountNo());
|
|
|
+ model.setRemark(settlement.getRemark());
|
|
|
+ model.setFoundStatus("结算完成");
|
|
|
+ model.setFinanceStatus("结算完成");
|
|
|
+ model.setBillNo(acc.getSrcBillNo());
|
|
|
+ model.setDc(acc.getDc());
|
|
|
+ model.setSrcBillId(acc.getSrcId());
|
|
|
+ model.setItemType(acc.getItemType());
|
|
|
+ model.setSysNo(String.valueOf(System.currentTimeMillis()));
|
|
|
+ model.setPaymentStatus(dto.getPaymentStatus());
|
|
|
+ model.setPaymentType(dto.getPaymentType());
|
|
|
+ model.setMemberBalance(dto.getMemberBalance());
|
|
|
+ if (ObjectUtils.isNotNull(dto.getTenantId())) {
|
|
|
+ model.setTenantId(dto.getTenantId());
|
|
|
+ } else {
|
|
|
+ model.setTenantId(AuthUtil.getTenantId());
|
|
|
+ model.setCreateUser(AuthUtil.getUserId());
|
|
|
+ }
|
|
|
+ model.setCreateTime(new Date());
|
|
|
+ model.setAccId(acc.getId());
|
|
|
+ model.setAccount(settlement.getAccount());
|
|
|
+ model.setOverPayment(settlement.getOverPayment());
|
|
|
+ baseMapper.insert(model);
|
|
|
+
|
|
|
+ Items items = new Items();
|
|
|
+ items.setItemId(acc.getSrcFeesId());
|
|
|
+ items.setCorpId(acc.getCorpId());
|
|
|
+ items.setQuantity(acc.getQuantity());
|
|
|
+ items.setUnit(acc.getUnit());
|
|
|
+ items.setPrice(settlement.getAmount());
|
|
|
+ items.setAmount(settlement.getAmount());
|
|
|
+ items.setThisAmount(settlement.getAmount());
|
|
|
+ items.setSrcOrderno(acc.getSrcSysno());
|
|
|
+ items.setSrcBillNo(acc.getSrcBillNo());
|
|
|
+ items.setCurrency(acc.getCurrency());
|
|
|
+ items.setExchangeRate(acc.getExchangeRate());
|
|
|
+ items.setTaxRate(acc.getTaxRate());
|
|
|
+ items.setItemType(acc.getBillType());
|
|
|
+ items.setSrcParentId(acc.getSrcParentId());
|
|
|
+ items.setSrcFeesId(acc.getSrcFeesId());
|
|
|
+ items.setSrcType(acc.getSrcType());
|
|
|
+ items.setCostType(acc.getCostType());
|
|
|
+ items.setBillNo(acc.getSrcBillNo());
|
|
|
+ items.setTradeType(acc.getTradeType());
|
|
|
+ items.setAccId(id);
|
|
|
+ items.setPid(model.getId());
|
|
|
+ if (ObjectUtils.isNotNull(dto.getTenantId())) {
|
|
|
+ items.setTenantId(dto.getTenantId());
|
|
|
+ } else {
|
|
|
+ items.setTenantId(AuthUtil.getTenantId());
|
|
|
+ items.setCreateUser(AuthUtil.getUserId());
|
|
|
+ items.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ }
|
|
|
+ items.setCreateTime(new Date());
|
|
|
+ items.setMemberBalance(dto.getMemberBalance());
|
|
|
+ items.setSettlmentAmount(settlement.getAmount());
|
|
|
+ items.setSettlementAmount(settlement.getAmount());
|
|
|
+ items.setTradeType(acc.getTradeType());
|
|
|
+ itemsMapper.insert(items);
|
|
|
+
|
|
|
+ /** 确认收款增加回填销售单未收款和已收款 */
|
|
|
+ BigDecimal receivedAmount = dto.getAmount();
|
|
|
+ Maintenance maintenance = new Maintenance();
|
|
|
+ maintenance.setId(acc.getSrcId());
|
|
|
+ maintenance.setSettlementAmount(receivedAmount);
|
|
|
+ maintenance.setStatus(5);
|
|
|
+ maintenance.setPaymentStatus("2");
|
|
|
+ maintenanceClient.updateMaintenance(maintenance);
|
|
|
+ acc.setSettlementAmount(receivedAmount);
|
|
|
+ accMapper.updateById(acc);
|
|
|
+ /** 确认收款增加回填销售单未收款和已收款 */
|
|
|
+ }
|
|
|
+ acc.setSettlementAmount(dto.getAmount());
|
|
|
+ acc.setId(id);
|
|
|
+ acc.setUpdateTime(new Date());
|
|
|
+ if (ObjectUtils.isNull(dto.getTenantId())) {
|
|
|
+ acc.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ }
|
|
|
+ accMapper.updateById(acc);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|