| | |
| | | @Override |
| | | public ReceivableFeeManagement selectReceivableFeeManagementById(Integer id) |
| | | { |
| | | return receivableFeeManagementMapper.selectReceivableFeeManagementById(id); |
| | | ReceivableFeeManagement receivableFeeManagement = receivableFeeManagementMapper.selectReceivableFeeManagementById(id); |
| | | if (receivableFeeManagement != null) { |
| | | // 查询对应的费用明细 |
| | | ReceivableFeeDetail detail = new ReceivableFeeDetail(); |
| | | detail.setReceivableFeeId(id); |
| | | List<ReceivableFeeDetail> detailList = receivableFeeDetailService.selectReceivableFeeDetailList(detail); |
| | | receivableFeeManagement.setReceivableFeeDetailList(detailList); |
| | | } |
| | | return receivableFeeManagement; |
| | | } |
| | | |
| | | /** |
| | |
| | | public int updateReceivableFeeManagement(ReceivableFeeManagement receivableFeeManagement) |
| | | { |
| | | receivableFeeManagement.setUpdateTime(DateUtils.getNowDate()); |
| | | return receivableFeeManagementMapper.updateReceivableFeeManagement(receivableFeeManagement); |
| | | |
| | | // 1. 更新主表信息 |
| | | int result = receivableFeeManagementMapper.updateReceivableFeeManagement(receivableFeeManagement); |
| | | |
| | | // 2. 获取主表ID |
| | | Integer receivableFeeId = receivableFeeManagement.getId(); |
| | | |
| | | // 3. 删除该应收费用下的所有现有明细 |
| | | receivableFeeDetailService.deleteReceivableFeeDetailByReceivableFeeId(receivableFeeId); |
| | | |
| | | // 4. 批量保存新的明细列表 |
| | | if (receivableFeeManagement.getReceivableFeeDetailList() != null && !receivableFeeManagement.getReceivableFeeDetailList().isEmpty()) { |
| | | // 设置每个明细的应收费用管理ID |
| | | receivableFeeManagement.getReceivableFeeDetailList().forEach(detail -> { |
| | | detail.setReceivableFeeId(receivableFeeId); |
| | | detail.setUpdateTime(DateUtils.getNowDate()); // 设置更新时间 |
| | | }); |
| | | |
| | | // 调用批量插入方法 |
| | | receivableFeeDetailService.insertReceivableFeeDetailBatch(receivableFeeManagement.getReceivableFeeDetailList()); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | |
| | | BigDecimal exchangeRate = new BigDecimal(sysConfig.getConfigValue()); |
| | | BigDecimal totalAmountHkd = totalReceivableAmount.divide(exchangeRate, 2, RoundingMode.HALF_UP); |
| | | |
| | | // 查询应收费用明细 |
| | | List<ReceivableFeeDetail> detailList = receivableFeeDetailService.selectReceivableFeeDetailByReceivableFeeIds(ids); |
| | | |
| | | |
| | | // 组装返回结果 |
| | | ReceivableFeeStatisticsVo result = new ReceivableFeeStatisticsVo(); |
| | | result.setDocumentCount(documentCount); |
| | |
| | | result.setTotalReceivableAmount(totalReceivableAmount); |
| | | result.setTotalAmountRmb(totalReceivableAmount); |
| | | result.setTotalAmountHkd(totalAmountHkd); |
| | | result.setDetailList(detailList); |
| | | result.setIds(ids); |
| | | |
| | | return result; |
| | |
| | | ReceivableBillManagement billManagement = new ReceivableBillManagement(); |
| | | billManagement.setDocumentCount(statisticsVo.getDocumentCount()); |
| | | billManagement.setExchangeRate(statisticsVo.getRate()); |
| | | billManagement.setStatus("DRAFT"); // 默认草稿状态 |
| | | billManagement.setStatus("0"); // 默认草稿状态 |
| | | billManagement.setCreateTime(DateUtils.getNowDate()); |
| | | |
| | | billManagement.setBillName(billCreateVo.getBillName()); |
| | | billManagement.setCustomerName(billCreateVo.getCustomerName()); |
| | | billManagement.setIsInternalSettlement(billCreateVo.getIsInternalSettlement()); |
| | | billManagement.setInternalSettlementUnit(billCreateVo.getInternalSettlementUnit()); |
| | | // 3. 根据账单类型设置币种和总金额 |
| | | if (billType == 0) { |
| | | // 人民币账单 |
| | |
| | | } else { |
| | | throw new IllegalArgumentException("无效的账单类型:" + billType); |
| | | } |
| | | |
| | | String noByKey = systemDataNoService.getNoByKey(SystemDataNoEnum.YSZD); |
| | | billManagement.setSystemNo(noByKey); |
| | | // 4. 保存主账单记录 |
| | | int i = receivableBillManagementService.insertReceivableBillManagement(billManagement); |
| | | |
| | |
| | | String billSystemNo = billManagement.getSystemNo(); |
| | | |
| | | // 批量更新应收费用主表的关联账单编号 |
| | | List<ReceivableFeeManagement> feeManagements = new ArrayList<>(); |
| | | for (Integer feeId : statisticsVo.getIds()) { |
| | | ReceivableFeeManagement feeManagement = new ReceivableFeeManagement(); |
| | | feeManagement.setId(feeId); |
| | | feeManagement.setRelatedBillNo(billSystemNo); |
| | | feeManagements.add(feeManagement); |
| | | feeManagement.setStatus("1"); |
| | | receivableFeeManagementMapper.updateReceivableFeeManagement(feeManagement); |
| | | } |
| | | |
| | | // 调用批量更新方法 |
| | | updateReceivableFeeManagementBatch(feeManagements); |
| | | |
| | | } |
| | | |
| | | return i; |