diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/service/BillManageDomainService.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/service/BillManageDomainService.java index 2ab6d5285..33d3535e3 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/service/BillManageDomainService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/service/BillManageDomainService.java @@ -233,6 +233,124 @@ public class BillManageDomainService { return flag && flagTwo && three; } + public Boolean saveBillJob(List billingStatementPOS,String billingRemark,Date billCreateTime,BillingStatementDTO billingStatementDTO) { +// LoginUser loginUser = SecurityUtils.getLoginUser(); +// if (ObjectUtil.isNull(loginUser)) { +//// throw new DigitalLogisticsException(UserError.TIMEOUT); +// } + BigDecimal taxAmount = billingStatementDTO.getTaxAmount(); // 获取税额 + Double taxRate = billingStatementDTO.getTaxRate(); // 获取税率 + BigDecimal taxFreeFee = billingStatementDTO.getTaxFreeFee(); // 获取税免金额 + String settlementCurrency = billingStatementDTO.getSettlementCurrency(); // 获取结算币种 + BillManage billManage = new BillManage(); + billManage.setTaxAmount(taxAmount); + billManage.setTaxRate(taxRate); + billManage.setTaxFreeFee(taxFreeFee); + billManage.setSettlementCurrency(settlementCurrency); +// billManage.setCreateBy(loginUser.getUserPo().getUserId()); +// billManage.setCreateByName(loginUser.getUserPo().getUserName()); + billManage.setCreateTime(billCreateTime==null ? new Date():billCreateTime); + billManage.setDelFlag(1); + billManage.setBillNumber(OrderSequence.getOrderCode("ZD")); + billManage.setTopOrganizationId(billingStatementDTO.getTopOrganizationId()); + billManage.setOrganizationId(billingStatementDTO.getOrganizationId()); + billManage.setOrganizationName(billingStatementDTO.getOrganizationName()); + billManage.setBillType(billingStatementPOS.get(0).getAccountExpenseType()); + billManage.setBelongModule(billingStatementPOS.get(0).getBelongModule()); + billManage.setBelongModuleCode(billingStatementPOS.get(0).getBelongModuleCode()); + billManage.setSettlementCustomersId(billingStatementPOS.get(0).getSettlementCustomersId()); + billManage.setSettlementEntity(billingStatementPOS.get(0).getSettlementEntity()); + billManage.setSettlementCustomersCode(billingStatementPOS.get(0).getSettlementCustomersCode()); + billManage.setSalesmanId(billingStatementPOS.get(0).getSalesmanId()); + billManage.setSalesmanName(billingStatementPOS.get(0).getSalesmanName()); + billManage.setPaymentAccountId(billingStatementPOS.get(0).getPaymentAccountId()); + billManage.setPaymentAccountName(billingStatementPOS.get(0).getPaymentAccountName()); + billManage.setBillRemark(billingRemark); + //查询结算对象信息 + SettlementCustomersPO settlementCustomersPO = settlementCustomersDomainService.getInfo(billingStatementPOS.get(0).getSettlementCustomersId()); + if(null == settlementCustomersPO){ + throw new ServiceException("结算对象信息未找到"); + } + billManage.setSettlementMethod(settlementCustomersPO.getSettlementMethod()); + billManage.setSettlementMethodCode(settlementCustomersPO.getSettlementMethodCode()); +// if(settlementCustomersPO.getMainRole()==1){ +// billManage.setBillType(1); +// }else { +// billManage.setBillType(2); +// } + //计算所有流水列表中的最早周期开始时间和晚周期结束时间 + List cycleBeginTimeSet = billingStatementPOS.stream().map(BillingStatementPO::getCycleBeginTime).collect(Collectors.toList()); + List cycleEndTimeSet = billingStatementPOS.stream().map(BillingStatementPO::getCycleEndTime).collect(Collectors.toList()); + cycleBeginTimeSet.removeIf(Objects::isNull); + cycleEndTimeSet.removeIf(Objects::isNull); + if(cycleBeginTimeSet.size()>0){ + billManage.setCycleBeginTime(Collections.min(cycleBeginTimeSet)); + } + if(cycleEndTimeSet.size()>0){ + billManage.setCycleEndTime(Collections.max(cycleEndTimeSet)); + } + //将所有的流水金额相加 + billManage.setBillTotalAmount(billingStatementPOS.stream().map(BillingStatementPO::getBillingAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + billManage.setBillAmount(billManage.getBillTotalAmount()); + billManage.setBillAmountUnsettled(billManage.getBillTotalAmount()); + boolean flag = billManageService.save(billManage); + billingStatementDTO.setBillManageId(billManage.getBillManageId()); + List billDetailList = new ArrayList<>(); + for (BillingStatementPO billingStatementPO : billingStatementPOS) { + //生成对账单详情 + BillDetail billDetail = new BillDetail(); + billDetail.setTopOrganizationId(billingStatementPO.getTopOrganizationId()); + billDetail.setOrganizationId(billingStatementPO.getOrganizationId()); + billDetail.setOrganizationName(billingStatementPO.getOrganizationName()); + billDetail.setCreateBy(billManage.getCreateBy()); + billDetail.setCreateByName(billManage.getCreateByName()); + billDetail.setCreateTime(billManage.getCreateTime()); + billDetail.setBillManageId(billManage.getBillManageId()); + billDetail.setBillNumber(billManage.getBillNumber()); + billDetail.setBillingStatementId(billingStatementPO.getBillingStatementId()); + billDetail.setBillingFlow(billingStatementPO.getBillingFlow()); + billDetail.setBillingTotalAmount(billingStatementPO.getBillingAmount()); + billDetail.setBillingAmount(billingStatementPO.getBillingAmount()); + billDetail.setBillType(billingStatementPO.getAccountExpenseType()); + billDetail.setTaxAmount(billingStatementPO.getTaxAmount()); + billDetail.setTaxRate(billingStatementPO.getTaxRate()); + billDetail.setTaxFreeFee(billingStatementPO.getTaxFreeFee()); + billDetail.setSettlementCurrency(billingStatementPO.getSettlementCurrency()); + billDetail.setFeeType(billingStatementPO.getFeeType()); + billDetail.setInvoiceItem(billingStatementPO.getInvoiceItem()); + billDetail.setInvoiceItemName(billingStatementPO.getInvoiceItemName()); + billDetailList.add(billDetail); + } + boolean flagTwo = billDetailDomainService.insertBatch(billDetailList); + //保存账单操作记录 + BillOperationLogDO billOperationLogDO = new BillOperationLogDO(); + billOperationLogDO.setBillManageId(billManage.getBillManageId()); + billOperationLogDO.setOperationInfo(StringUtils.format(BillLogsConstants.create_bill_text, billManage.getBillNumber(), billManage.getBillTotalAmount())); + billOperationLogDO.setOperationType(1); + billOperationLogDO.setCreateByName(billManage.getCreateByName()); + billOperationLogDO.setUpdateByName(billManage.getUpdateByName()); + billOperationLogDO.setCreateTime(new Date()); + billOperationLogDO.setUpdateTime(new Date()); + billOperationLogDO.setDelFlag(1); + billOperationLogDO.setCreateBy(billManage.getCreateBy()); + billOperationLogDO.setUpdateBy(billManage.getUpdateBy()); + billOperationLogDO.setTopOrganizationId(billManage.getTopOrganizationId()); + billOperationLogDO.setOrganizationId(billManage.getOrganizationId()); + billOperationLogDO.setOrganizationName(billManage.getOrganizationName()); + + boolean three = billOperationLogDomainService.saveBillOperationLogJob(billOperationLogDO); + //修改流水记录 + /*billingStatementDTO.getBillingStatementList().forEach(billingStatementADDVO -> { + billingStatementMapper.update(null, + new LambdaUpdateWrapper().set(BillingStatement::getTaxAmount,billingStatementADDVO.getTaxAmount()) + .set(BillingStatement::getTaxRate,billingStatementADDVO.getTaxRate()) + .set(BillingStatement::getTaxFreeFee,billingStatementADDVO.getTaxFreeFee()) + .set(BillingStatement::getSettlementCurrency,billingStatementADDVO.getSettlementCurrency()) + .eq(BillingStatement::getBillingStatementId,billingStatementADDVO.getBillingStatementId())); + });*/ + return flag && flagTwo && three; + } + /** * 保存账单 * @param billingStatementDTO @@ -351,7 +469,7 @@ public class BillManageDomainService { if(billingStatementPOS==null || billingStatementPOS.size()==0){ throw new ServiceException("所选流水信息未找到"); } - return saveBill(distinctList,billingStatementDTO.getBillingRemark(),billingStatementDTO.getBillCreateTime(),billingStatementDTO); + return saveBillJob(distinctList,billingStatementDTO.getBillingRemark(),billingStatementDTO.getBillCreateTime(),billingStatementDTO); } diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billOperationLog/service/BillOperationLogDomainService.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billOperationLog/service/BillOperationLogDomainService.java index f998836f1..0495eccdb 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billOperationLog/service/BillOperationLogDomainService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billOperationLog/service/BillOperationLogDomainService.java @@ -95,6 +95,12 @@ public class BillOperationLogDomainService { return billOperationLogService.insert(billOperationLogDO); } + public Boolean saveBillOperationLogJob(BillOperationLogDO billOperationLogDO) { + + billOperationLogDO.setDelFlag(1); + return billOperationLogService.insert(billOperationLogDO); + } + /** * 批量保存操作日志 @@ -161,4 +167,4 @@ public class BillOperationLogDomainService { public List getDetailsById(Long billManageId) { return billOperationLogService.getDetailsById(billManageId); } -} +} \ No newline at end of file