| | |
| | | |
| | | import com.ruoyi.common.core.domain.AjaxResult; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.cwgl.domain.PayableBillManagement; |
| | | import com.ruoyi.cwgl.domain.PayableFeeDetail; |
| | | import com.ruoyi.cwgl.domain.PayableFeeManagement; |
| | | import com.ruoyi.cwgl.domain.ReceivableBillManagement; |
| | | import com.ruoyi.cwgl.domain.ReceivableFeeDetail; |
| | | import com.ruoyi.cwgl.domain.ReceivableFeeManagement; |
| | | import com.ruoyi.cwgl.domain.*; |
| | | import com.ruoyi.cwgl.domain.dto.BillAuditDto; |
| | | import com.ruoyi.cwgl.domain.dto.PayableBillApiDto; |
| | | import com.ruoyi.cwgl.domain.dto.ReceivableBillApiDto; |
| | | import com.ruoyi.cwgl.service.IPayableBillManagementService; |
| | |
| | | |
| | | result.put("status", "0000"); |
| | | result.put("message", "应收账单添加成功"); |
| | | result.put("billNo", billManagement.getSystemNo()); |
| | | result.put("sourceSystemId", billManagement.getId().toString()); |
| | | |
| | | logger.info("应收账单添加成功,账单编号:{}", billManagement.getSystemNo()); |
| | | logger.info("应收账单添加成功,来源账单id:{}", billManagement.getId()); |
| | | |
| | | } catch (Exception e) { |
| | | logger.error("应收账单添加失败:", e); |
| | |
| | | billManagement.setSettlementCategory(billDto.getSettlementCategory()); |
| | | billManagement.setSettlementPeriod(billDto.getSettlementPeriod()); |
| | | billManagement.setStatus(billDto.getStatus() != null ? billDto.getStatus() : "draft"); |
| | | billManagement.setAuditStatus(billDto.getAuditStatus() != null ? billDto.getAuditStatus() : 0); |
| | | billManagement.setSourceSystemId(billDto.getSourceSystemId()); |
| | | billManagement.setRemark(billDto.getRemark()); |
| | | billManagement.setCreateTime(DateUtils.getNowDate()); |
| | | billManagement.setCreateBy("api_system"); |
| | |
| | | // 使用Map存储系统编号和ID的映射关系 |
| | | Map<String, Integer> systemNoToIdMap = new HashMap<>(); |
| | | |
| | | |
| | | // 批量插入后,ID已经自动设置到对象的id属性中 |
| | | for (ReceivableFeeManagement feeManagement : feeManagementList) { |
| | | |
| | | // 假设插入后可以通过某种方式获取ID,这里简化处理 |
| | | // 实际项目中可能需要根据业务逻辑获取ID |
| | | systemNoToIdMap.put(feeManagement.getSystemNo(), feeManagement.getId()); |
| | | |
| | | systemNoToIdMap.put(feeManagement.getSystemNo(), feeManagement.getId()); |
| | | } |
| | | |
| | | // 设置费用明细的关联ID |
| | | // 重新构建费用明细列表,正确设置关联ID |
| | | List<ReceivableFeeDetail> finalFeeDetailList = new ArrayList<>(); |
| | | for (int i = 0; i < feeManagementList.size(); i++) { |
| | | ReceivableFeeManagement feeManagement = feeManagementList.get(i); |
| | | int detailIndex = 0; |
| | | |
| | | for (ReceivableFeeManagement feeManagement : feeManagementList) { |
| | | Integer feeId = systemNoToIdMap.get(feeManagement.getSystemNo()); |
| | | |
| | | if (feeId != null && i < feeDetailList.size()) { |
| | | ReceivableFeeDetail feeDetail = feeDetailList.get(i); |
| | | feeDetail.setReceivableFeeId(feeId); |
| | | finalFeeDetailList.add(feeDetail); |
| | | if (feeId != null) { |
| | | // 获取该费用管理记录对应的费用明细数量 |
| | | int detailCount = 0; |
| | | for (ReceivableBillApiDto.ReceivableFeeDto feeDto : fees) { |
| | | if (feeDto.getDocumentNo().equals(feeManagement.getDocumentNo())) { |
| | | detailCount = feeDto.getFeeDetails() != null ? feeDto.getFeeDetails().size() : 0; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | // 设置对应数量的费用明细的关联ID |
| | | for (int i = 0; i < detailCount && detailIndex < feeDetailList.size(); i++) { |
| | | ReceivableFeeDetail feeDetail = feeDetailList.get(detailIndex); |
| | | feeDetail.setReceivableFeeId(feeId); |
| | | finalFeeDetailList.add(feeDetail); |
| | | detailIndex++; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | result.put("status", "0000"); |
| | | result.put("message", "应付账单添加成功"); |
| | | result.put("billNo", billManagement.getSystemNo()); |
| | | result.put("sourceSystemId", billManagement.getId().toString()); |
| | | |
| | | logger.info("应付账单添加成功,账单编号:{}", billManagement.getSystemNo()); |
| | | logger.info("应付账单添加成功,来源账单id:{}", billManagement.getId()); |
| | | |
| | | } catch (Exception e) { |
| | | logger.error("应付账单添加失败:", e); |
| | |
| | | |
| | | // 设置其他信息 |
| | | billManagement.setStatus(billDto.getStatus() != null ? billDto.getStatus() : "draft"); |
| | | billManagement.setAuditStatus(billDto.getAuditStatus() != null ? billDto.getAuditStatus() : 0); |
| | | billManagement.setSourceSystemId(billDto.getSourceSystemId()); |
| | | billManagement.setRemark(billDto.getRemark()); |
| | | billManagement.setCreateTime(DateUtils.getNowDate()); |
| | | billManagement.setCreateBy("api_system"); |
| | |
| | | feeManagement.setBusinessTime(feeDto.getBusinessTime()); |
| | | feeManagement.setPayableConfirmTime(feeDto.getPayableConfirmTime()); |
| | | feeManagement.setPayableAmount(feeDto.getPayableAmount()); |
| | | feeManagement.setPayableAmountStr(feeDto.getPayableAmountStr()); |
| | | feeManagement.setStatus(feeDto.getStatus() != null ? feeDto.getStatus() : "confirmed"); |
| | | feeManagement.setRemark(feeDto.getRemark()); |
| | | feeManagement.setCreateTime(DateUtils.getNowDate()); |
| | |
| | | // 使用Map存储系统编号和ID的映射关系 |
| | | Map<String, Integer> systemNoToIdMap = new HashMap<>(); |
| | | |
| | | // 批量保存费用管理信息并获取ID |
| | | // 批量插入后,ID已经自动设置到对象的id属性中 |
| | | for (PayableFeeManagement feeManagement : feeManagementList) { |
| | | |
| | | // 假设插入后可以通过某种方式获取ID,这里简化处理 |
| | | // 实际项目中可能需要根据业务逻辑获取ID |
| | | systemNoToIdMap.put(feeManagement.getSystemNo(), feeManagement.getId()); |
| | | |
| | | systemNoToIdMap.put(feeManagement.getSystemNo(), feeManagement.getId()); |
| | | } |
| | | |
| | | // 设置费用明细的关联ID |
| | | // 重新构建费用明细列表,正确设置关联ID |
| | | List<PayableFeeDetail> finalFeeDetailList = new ArrayList<>(); |
| | | for (int i = 0; i < feeManagementList.size(); i++) { |
| | | PayableFeeManagement feeManagement = feeManagementList.get(i); |
| | | int detailIndex = 0; |
| | | |
| | | for (PayableFeeManagement feeManagement : feeManagementList) { |
| | | Integer feeId = systemNoToIdMap.get(feeManagement.getSystemNo()); |
| | | |
| | | if (feeId != null && i < feeDetailList.size()) { |
| | | PayableFeeDetail feeDetail = feeDetailList.get(i); |
| | | feeDetail.setPayableFeeId(feeId); |
| | | finalFeeDetailList.add(feeDetail); |
| | | if (feeId != null) { |
| | | // 获取该费用管理记录对应的费用明细数量 |
| | | int detailCount = 0; |
| | | for (PayableBillApiDto.PayableFeeDto feeDto : fees) { |
| | | if (feeDto.getDocumentNo().equals(feeManagement.getDocumentNo())) { |
| | | detailCount = feeDto.getFeeDetails() != null ? feeDto.getFeeDetails().size() : 0; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | // 设置对应数量的费用明细的关联ID |
| | | for (int i = 0; i < detailCount && detailIndex < feeDetailList.size(); i++) { |
| | | PayableFeeDetail feeDetail = feeDetailList.get(detailIndex); |
| | | feeDetail.setPayableFeeId(feeId); |
| | | finalFeeDetailList.add(feeDetail); |
| | | detailIndex++; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * 应收账单作废接口 |
| | | * 其他系统调用此接口作废应收账单 |
| | | * @param request 请求数据 |
| | | * @return 操作结果 |
| | | */ |
| | | @PostMapping("/cancelBill") |
| | | public Map<String, String> cancelReceivableBill(@RequestBody Map<String, Integer> request) { |
| | | logger.info("接收应收账单作废请求:{}", request); |
| | | |
| | | Map<String, String> result = new HashMap<>(); |
| | | |
| | | try { |
| | | Integer sourceSystemId = request.get("sourceSystemId"); |
| | | if (sourceSystemId == null) { |
| | | throw new IllegalArgumentException("sourceSystemId不能为空"); |
| | | } |
| | | |
| | | // 调用作废方法 |
| | | int rows = receivableBillManagementService. voidReceivableBillManagement(sourceSystemId); |
| | | |
| | | if (rows > 0) { |
| | | result.put("status", "0000"); |
| | | result.put("message", "应收账单作废成功"); |
| | | logger.info("应收账单作废成功,sourceSystemId:{}", sourceSystemId); |
| | | } else { |
| | | result.put("status", "9999"); |
| | | result.put("message", "应收账单作废失败,未找到对应记录"); |
| | | logger.warn("应收账单作废失败,未找到对应记录,sourceSystemId:{}", sourceSystemId); |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | logger.error("应收账单作废失败:", e); |
| | | result.put("status", "9999"); |
| | | result.put("message", "应收账单作废失败:" + e.getMessage()); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * 应付账单作废接口 |
| | | * 其他系统调用此接口作废应付账单 |
| | | * @param request 请求数据 |
| | | * @return 操作结果 |
| | | */ |
| | | @PostMapping("/cancelPayableBill") |
| | | public Map<String, String> cancelPayableBill(@RequestBody Map<String, Integer> request) { |
| | | logger.info("接收应付账单作废请求:{}", request); |
| | | |
| | | Map<String, String> result = new HashMap<>(); |
| | | |
| | | try { |
| | | Integer sourceSystemId = request.get("sourceSystemId"); |
| | | if (sourceSystemId == null) { |
| | | throw new IllegalArgumentException("sourceSystemId不能为空"); |
| | | } |
| | | |
| | | // 调用作废方法 |
| | | int rows = payableBillManagementService.voidPayableBillManagement(sourceSystemId); |
| | | |
| | | if (rows > 0) { |
| | | result.put("status", "0000"); |
| | | result.put("message", "应付账单作废成功"); |
| | | logger.info("应付账单作废成功,sourceSystemId:{}", sourceSystemId); |
| | | } else { |
| | | result.put("status", "9999"); |
| | | result.put("message", "应付账单作废失败,未找到对应记录"); |
| | | logger.warn("应付账单作废失败,未找到对应记录,sourceSystemId:{}", sourceSystemId); |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | logger.error("应付账单作废失败:", e); |
| | | result.put("status", "9999"); |
| | | result.put("message", "应付账单作废失败:" + e.getMessage()); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * 健康检查接口 |
| | | * @return 健康状态 |
| | | */ |