|
|
@@ -869,4 +869,137 @@ public class TaskOrderNonTaxRecordServiceImpl extends ServiceImpl<TaskOrderNonTa
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询并更新缴费状态
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void queryAndUpdatePaymentStatus() {
|
|
|
+
|
|
|
+ if(EnvConstants.ENV_UAT.equals(env) || EnvConstants.ENV_PROD.equals(env)){
|
|
|
+
|
|
|
+ log.info("开始查询并更新非税缴费状态");
|
|
|
+
|
|
|
+ // 查询条件:status=200 且 payStatus=100
|
|
|
+ LambdaQueryWrapperX<TaskOrderNonTaxRecordDO> queryWrapper = new LambdaQueryWrapperX<>();
|
|
|
+ queryWrapper.eq(TaskOrderNonTaxRecordDO::getStatus, 200)
|
|
|
+ .eq(TaskOrderNonTaxRecordDO::getPayStatus, 100)
|
|
|
+ .isNotNull(TaskOrderNonTaxRecordDO::getPaymentInstructionNo);
|
|
|
+
|
|
|
+ // 查询符合条件的记录
|
|
|
+ List<TaskOrderNonTaxRecordDO> records = taskOrderNonTaxRecordMapper.selectList(queryWrapper);
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(records)) {
|
|
|
+ log.info("没有需要查询缴费状态的记录");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("查询到 {} 条需要更新缴费状态的记录", records.size());
|
|
|
+
|
|
|
+ int successCount = 0;
|
|
|
+ int failCount = 0;
|
|
|
+ int paidCount = 0;
|
|
|
+
|
|
|
+ // 遍历每条记录,查询财务系统缴费状态
|
|
|
+ for (TaskOrderNonTaxRecordDO record : records) {
|
|
|
+ try {
|
|
|
+ String paymentInstructionNo = record.getPaymentInstructionNo();
|
|
|
+
|
|
|
+ if (paymentInstructionNo == null || paymentInstructionNo.trim().isEmpty()) {
|
|
|
+ log.warn("记录 {} 的缴费通知书号为空,跳过", record.getId());
|
|
|
+ failCount++;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("正在查询缴费通知书号 {} 的缴费状态", paymentInstructionNo);
|
|
|
+
|
|
|
+ // 调用财务系统接口查询缴费状态
|
|
|
+ // tag=2:按单位编码和缴款码查询
|
|
|
+ IncomepaymentData queryData = new IncomepaymentData();
|
|
|
+ queryData.setIncomepaymentData(paymentInstructionNo);
|
|
|
+ IncomepaymentData result = financialSystemService.queryFinancialOutFeeInfo("2", queryData);
|
|
|
+
|
|
|
+ if (result == null) {
|
|
|
+ log.warn("查询缴费通知书号 {} 返回结果为空", paymentInstructionNo);
|
|
|
+ failCount++;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ String paynoteStatus = result.getPaynoteStatus();
|
|
|
+ log.info("缴费通知书号 {} 的状态: {}", paymentInstructionNo, paynoteStatus);
|
|
|
+
|
|
|
+ // 判断是否已缴款(PaynoteStatus=3)
|
|
|
+ if ("3".equals(paynoteStatus)) {
|
|
|
+ log.info("缴费通知书号 {} 已缴款,开始更新记录", paymentInstructionNo);
|
|
|
+
|
|
|
+ // 更新记录的缴费状态为已缴款(200)
|
|
|
+ TaskOrderNonTaxRecordDO updateRecord = new TaskOrderNonTaxRecordDO();
|
|
|
+ updateRecord.setId(record.getId());
|
|
|
+ updateRecord.setPayStatus(200); // 已缴款
|
|
|
+
|
|
|
+ // 设置缴费日期
|
|
|
+ LocalDateTime payTime = result.getPayTime();
|
|
|
+ if (payTime != null) {
|
|
|
+ updateRecord.setPayDate(payTime);
|
|
|
+ }else{
|
|
|
+ payTime = LocalDateTime.now();
|
|
|
+ updateRecord.setPayDate(payTime);
|
|
|
+ }
|
|
|
+ taskOrderNonTaxRecordMapper.updateById(updateRecord);
|
|
|
+
|
|
|
+ log.info("成功更新记录 {} 的缴费状态为已缴款", record.getId());
|
|
|
+
|
|
|
+ // 查询关联的task_order_non_tax_record_item记录
|
|
|
+ LambdaQueryWrapperX<TaskOrderNonTaxRecordItemDO> itemQueryWrapper = new LambdaQueryWrapperX<>();
|
|
|
+ itemQueryWrapper.eq(TaskOrderNonTaxRecordItemDO::getRecordId, record.getId());
|
|
|
+ List<TaskOrderNonTaxRecordItemDO> itemList = taskOrderNonTaxRecordItemMapper.selectList(itemQueryWrapper);
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(itemList)) {
|
|
|
+ log.info("记录 {} 关联了 {} 个任务单", record.getId(), itemList.size());
|
|
|
+
|
|
|
+ // 更新关联的task_order的支付状态
|
|
|
+ for (TaskOrderNonTaxRecordItemDO item : itemList) {
|
|
|
+ String orderId = item.getOrderId();
|
|
|
+ if (orderId != null && !orderId.trim().isEmpty()) {
|
|
|
+ try {
|
|
|
+ BoilerTaskOrderDO taskOrder = taskOrderMapper.selectById(orderId);
|
|
|
+ if (taskOrder != null) {
|
|
|
+ // 更新任务单的缴费状态
|
|
|
+ BoilerTaskOrderDO updateTaskOrder = new BoilerTaskOrderDO();
|
|
|
+ updateTaskOrder.setId(orderId);
|
|
|
+ updateTaskOrder.setPaymentStatus(1); // 1=已缴费
|
|
|
+ updateTaskOrder.setPayTime(payTime);
|
|
|
+
|
|
|
+ taskOrderMapper.updateById(updateTaskOrder);
|
|
|
+ log.info("成功更新任务单 {} 的缴费状态为已缴费", orderId);
|
|
|
+ } else {
|
|
|
+ log.warn("任务单 {} 不存在", orderId);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("更新任务单 {} 缴费状态时发生异常: {}", orderId, e.getMessage(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.info("记录 {} 没有关联的任务单", record.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ paidCount++;
|
|
|
+ successCount++;
|
|
|
+ } else {
|
|
|
+ log.debug("缴费通知书号 {} 尚未缴款,当前状态: {}", paymentInstructionNo, paynoteStatus);
|
|
|
+ successCount++;
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("处理记录 {} 时发生异常: {}", record.getId(), e.getMessage(), e);
|
|
|
+ failCount++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("非税缴费状态查询完成。成功: {}, 已缴款: {}, 失败: {}", successCount, paidCount, failCount);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|