|
|
|
@ -3,6 +3,7 @@ package com.dxhy.order.consumer.modules.order.controller; |
|
|
|
|
import cn.hutool.core.util.NumberUtil; |
|
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
|
import com.alibaba.fastjson.JSONException; |
|
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
|
import com.dxhy.order.baseservice.module.base.service.BaseService; |
|
|
|
|
import com.dxhy.order.constant.ConfigureConstant; |
|
|
|
|
import com.dxhy.order.constant.OrderInfoContentEnum; |
|
|
|
@ -10,7 +11,13 @@ import com.dxhy.order.constant.OrderInfoEnum; |
|
|
|
|
import com.dxhy.order.constant.OrderManagementConstant; |
|
|
|
|
import com.dxhy.order.consumer.modules.order.model.dto.RewriteBzdhDTO; |
|
|
|
|
import com.dxhy.order.consumer.modules.order.service.OrderBzdhService; |
|
|
|
|
import com.dxhy.order.consumer.modules.order.service.OrderItemInfoService; |
|
|
|
|
import com.dxhy.order.exception.OrderReceiveException; |
|
|
|
|
import com.dxhy.order.model.*; |
|
|
|
|
import com.dxhy.order.model.page.RedInvoiceCheckReqPo; |
|
|
|
|
import com.dxhy.order.model.page.RedInvoicePreReqPo; |
|
|
|
|
import com.dxhy.order.model.page.RedInvoiceRespPo; |
|
|
|
|
import com.dxhy.order.model.page.RedInvoiceStageReqPo; |
|
|
|
|
import com.dxhy.order.model.sk.kp.CommonInvoiceStatus; |
|
|
|
|
import com.dxhy.order.utils.CommonUtils; |
|
|
|
|
import com.dxhy.order.utils.JsonUtils; |
|
|
|
@ -28,12 +35,12 @@ import com.dxhy.order.invoice.module.invoice.service.OrderInvoiceInfoService; |
|
|
|
|
import com.dxhy.order.invoice.module.invoice.service.UnifyService; |
|
|
|
|
import com.dxhy.order.invoice.module.invoicespecial.model.SpecialInvoiceReversalEntity; |
|
|
|
|
import com.dxhy.order.invoice.module.invoicespecial.service.SpecialInvoiceReversalService; |
|
|
|
|
import com.dxhy.order.utils.StringUtil; |
|
|
|
|
import io.swagger.annotations.Api; |
|
|
|
|
import io.swagger.annotations.ApiOperation; |
|
|
|
|
import io.swagger.annotations.ApiParam; |
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
@ -82,6 +89,9 @@ public class OrderInvoiceController { |
|
|
|
|
@Resource |
|
|
|
|
private BaseService baseService; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private OrderItemInfoService itemInfoService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 异常订单直接开票接口 |
|
|
|
@ -138,6 +148,122 @@ public class OrderInvoiceController { |
|
|
|
|
return R.error().put(OrderManagementConstant.MESSAGE, "未知异常,请联系管理员!"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
/** |
|
|
|
|
* 山能定制冲红流程,普票负数开具、专票的红字申请、数电红字确认单 |
|
|
|
|
* |
|
|
|
|
* @param |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@ApiOperation(value = "冲红流程", notes = "订单开票-冲红流程校验的接口") |
|
|
|
|
@PostMapping("/checkRedInvoice") |
|
|
|
|
@SysLog(operation = "冲红流程", operationDesc = "订单开具冲红流程校验", key = "冲红流程") |
|
|
|
|
public R checkRedInvoice(@RequestBody @Validated RedInvoiceCheckReqPo redInvoiceReqPo) { |
|
|
|
|
try { |
|
|
|
|
return orderInvoiceInfoService.checkRedInvoice(redInvoiceReqPo); |
|
|
|
|
} catch (OrderReceiveException e){ |
|
|
|
|
return R.error(e.getMessage()); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error("{}待开订单开具接口,参数转换异常e:{}", LOGGER_MSG, e); |
|
|
|
|
return R.error().put(OrderManagementConstant.MESSAGE, "未知异常,请联系管理员!"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 山能定制冲红流程,普票负数开具、专票的红字申请、数电红字确认单 |
|
|
|
|
* |
|
|
|
|
* @param |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@ApiOperation(value = "冲红流程", notes = "订单开票-冲红流程获取数据的接口") |
|
|
|
|
@PostMapping("/getOrderInvoiceData") |
|
|
|
|
@SysLog(operation = "冲红流程", operationDesc = "订单开具冲红流程校验", key = "冲红流程") |
|
|
|
|
public R getOrderInvoiceData(@RequestBody @Validated RedInvoiceCheckReqPo redInvoiceReqPo) { |
|
|
|
|
try { |
|
|
|
|
RedInvoiceRespPo orderInvoiceData = orderInvoiceInfoService.getOrderInvoiceData(redInvoiceReqPo); |
|
|
|
|
return R.ok().put(OrderManagementConstant.DATA,orderInvoiceData); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error("{}待开订单开具接口,参数转换异常e:{}", LOGGER_MSG, e); |
|
|
|
|
return R.error().put(OrderManagementConstant.MESSAGE, "未知异常,请联系管理员!"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 获取蓝字发票明细订单 |
|
|
|
|
* @param param |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@ApiOperation(value = "冲红流程", notes = "订单开票-冲红流程获取发票明细数据的接口") |
|
|
|
|
@PostMapping("/getOrderItemData") |
|
|
|
|
@SysLog(operation = "冲红流程", operationDesc = "冲红流程获取发票明细数据的接口", key = "冲红流程") |
|
|
|
|
public R getOrderItemData(@RequestBody String param) { |
|
|
|
|
try { |
|
|
|
|
JSONObject jsonObject = JSONObject.parseObject(param); |
|
|
|
|
List<OrderItemInfo> orderItemInfos = itemInfoService.selectOrderItemInfoByOrderId(jsonObject.getString("OrderInfoId"), Arrays.asList(jsonObject.getString("xhfNsrsbh"))); |
|
|
|
|
return R.ok().put(OrderManagementConstant.DATA,orderItemInfos); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error("{}待开订单开具接口,参数转换异常e:{}", LOGGER_MSG, e); |
|
|
|
|
return R.error().put(OrderManagementConstant.MESSAGE, "未知异常,请联系管理员!"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 保存红字明细与蓝字发票的关联关系 |
|
|
|
|
* @param |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@ApiOperation(value = "冲红流程", notes = "订单开票-冲红流程数据暂存接口") |
|
|
|
|
@PostMapping("/stageRedInvoiceData") |
|
|
|
|
@SysLog(operation = "冲红流程", operationDesc = "冲红流程数据暂存接口", key = "冲红流程") |
|
|
|
|
public R stageRedInvoiceData(@RequestBody RedInvoiceStageReqPo redInvoiceSaveReqPo) { |
|
|
|
|
try { |
|
|
|
|
//红字
|
|
|
|
|
return orderInvoiceInfoService.stageRedInvoiceData(redInvoiceSaveReqPo); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error("{}待开订单开具接口,参数转换异常e:{}", LOGGER_MSG, e); |
|
|
|
|
return R.error().put(OrderManagementConstant.MESSAGE, "未知异常,请联系管理员!"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 生成预制 |
|
|
|
|
* @param |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@ApiOperation(value = "冲红流程", notes = "订单开票-冲红流程生成预览数据接口") |
|
|
|
|
@PostMapping("/generatePreInvoice") |
|
|
|
|
@SysLog(operation = "冲红流程", operationDesc = "冲红流程生成预览数据接口", key = "冲红流程") |
|
|
|
|
public R generatePreInvoice(@RequestBody RedInvoicePreReqPo redInvoicePreReqPo) { |
|
|
|
|
try { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return R.ok(); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error("{}待开订单开具接口,参数转换异常e:{}", LOGGER_MSG, e); |
|
|
|
|
return R.error().put(OrderManagementConstant.MESSAGE, "未知异常,请联系管理员!"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 发票开具、专票冲红申请红字、数电申请红字确认单 |
|
|
|
|
* @param |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@ApiOperation(value = "冲红流程", notes = "订单开票-冲红流程保存并开具发票") |
|
|
|
|
@PostMapping("/saveInvoiceData") |
|
|
|
|
@SysLog(operation = "冲红流程", operationDesc = "冲红流程保存并开具发票", key = "冲红流程") |
|
|
|
|
public R saveInvoiceData(@RequestBody RedInvoicePreReqPo redInvoicePreReqPo) { |
|
|
|
|
try { |
|
|
|
|
|
|
|
|
|
//如果是普通
|
|
|
|
|
return R.ok(); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error("{}待开订单开具接口,参数转换异常e:{}", LOGGER_MSG, e); |
|
|
|
|
return R.error().put(OrderManagementConstant.MESSAGE, "未知异常,请联系管理员!"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 生成预制发票(非拆分场景) |
|
|
|
|