feat:发票回推新增报账单号,修改原始接受map为dto实体

release
gongquanlin 2 years ago
parent e69a94794b
commit 0716f496ab
  1. 2
      order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java
  2. 46
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/controller/InvoiceReceiveController.java
  3. 17
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/model/dto/ManualPushInvoiceDTO.java
  4. 14
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/model/dto/ManualPushInvoiceDetailDTO.java
  5. 3
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/InvoiceDataService.java
  6. 28
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/InvoiceDataServiceImpl.java

@ -647,7 +647,7 @@ public class CommodityController {
commodityExcel.setSpbm(commodityCodeEntity.getSpbm());
commodityExcel.setSpjc(nullToEmptyString(commodityCodeEntity.getSpjc()));
if (OrderInfoEnum.YHZCBS_1.getKey().equals(commodityCodeEntity.getYhzcbs())) {
if (OrderInfoEnum.YHZCBS_1.getKey().equals(commodityCodeEntity.getYhzcbs( ))) {
commodityExcel.setYhzcbs(ConfigureConstant.STRING_YHZCBS_S);
} else if (OrderInfoEnum.YHZCBS_0.getKey().equals(commodityCodeEntity.getYhzcbs())) {
commodityExcel.setYhzcbs(ConfigureConstant.STRING_YHZCBS_F);

@ -3,7 +3,9 @@ package com.dxhy.order.consumer.modules.manager.controller;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
import com.dxhy.order.constant.*;
import com.dxhy.order.consumer.modules.manager.model.dto.ManualPushInvoiceDTO;
import com.dxhy.order.exception.OrderReceiveException;
import com.dxhy.order.model.*;
import com.dxhy.order.model.newsk.invoiceissue.InvoiceIssueFailDetail;
@ -46,8 +48,8 @@ import java.util.Map;
import java.util.Objects;
/**
* @Description 接收税控底层数据接口
* @author 杨士勇
* @Description 接收税控底层数据接口
* @ClassName InvocieReceiveController
* @date 2019年6月3日 下午2:54:23
*/
@ -147,7 +149,7 @@ public class InvoiceReceiveController {
@ApiOperation(value = "接收税控发票修复数据", notes = "接收税控发票修复数据-接收税控底层修复的发票数据")
@PostMapping("/receiveRepairedInvoices")
public InterfaceData receiveRepairedInvoices(HttpServletRequest request){
public InterfaceData receiveRepairedInvoices(HttpServletRequest request) {
InterfaceData interfaceData = new InterfaceData();
try {
String data = IOUtils.toString(request.getInputStream(), StandardCharsets.UTF_8);
@ -171,15 +173,15 @@ public class InvoiceReceiveController {
} catch (OrderReceiveException e) {
log.error("{}接收税控发票修复数据异常:{}", LOGGER_MSG, e.getMessage());
return buildReturnData(interfaceData,e.getCode(),e.getMessage(),null);
return buildReturnData(interfaceData, e.getCode(), e.getMessage(), null);
} catch (Exception e) {
log.error("{}接收税控发票修复数据异常:{}", LOGGER_MSG, e.getMessage());
return buildReturnData(interfaceData,ConfigureConstant.STRING_9999,e.getMessage(),null);
return buildReturnData(interfaceData, ConfigureConstant.STRING_9999, e.getMessage(), null);
}
}
private InterfaceData buildReturnData(InterfaceData interfaceData,String code,String msg,Object object){
if(ObjectUtil.isNotNull(object)){
private InterfaceData buildReturnData(InterfaceData interfaceData, String code, String msg, Object object) {
if (ObjectUtil.isNotNull(object)) {
interfaceData.setData(JsonUtils.getInstance().toJsonString(object));
}
interfaceData.setReturnCode(code);
@ -225,9 +227,9 @@ public class InvoiceReceiveController {
errorMsg = "订单调用底层接口异常:开票点正忙";
} else {
if(ObjectUtil.isNotNull(invoicePushFg)){
if (ObjectUtil.isNotNull(invoicePushFg)) {
InvoiceIssueFailDetail faildetail = invoicePushFg.getFAILDETAIL();
if(Objects.nonNull(faildetail) && StringUtils.isNotBlank(faildetail.getSFXYCS())){
if (Objects.nonNull(faildetail) && StringUtils.isNotBlank(faildetail.getSFXYCS())) {
//根据发票请求流水号查询订单信息
List<String> shList = NsrsbhUtils.transShListByNsrsbh(interfaceData.getTaxpayerNo());
@ -239,34 +241,34 @@ public class InvoiceReceiveController {
return R.error(OrderInfoContentEnum.INVOICE_DATA_BATCH_NULL);
}
TaxEquipmentInfo taxEquipmentInfo = simsBackService.queryTaxEquipment(interfaceData.getTaxpayerNo(),oldOrderInvoiceInfo.getEntId());
log.debug("{}查询销项后台销方开票状态,返回结果:{}",LOGGER_MSG, JsonUtils.getInstance().toJsonString(taxEquipmentInfo));
TaxEquipmentInfo taxEquipmentInfo = simsBackService.queryTaxEquipment(interfaceData.getTaxpayerNo(), oldOrderInvoiceInfo.getEntId());
log.debug("{}查询销项后台销方开票状态,返回结果:{}", LOGGER_MSG, JsonUtils.getInstance().toJsonString(taxEquipmentInfo));
//开票开关
String invoicingSwitch = "";
if(Objects.nonNull(taxEquipmentInfo)){
if (Objects.nonNull(taxEquipmentInfo)) {
invoicingSwitch = taxEquipmentInfo.getFlag();
}
if(OrderInfoEnum.INVOICE_RETRY_0.getKey().equals(faildetail.getSFXYCS())){
if (OrderInfoEnum.INVOICE_RETRY_0.getKey().equals(faildetail.getSFXYCS())) {
//税控返回'不重试',开票数据不放入延时队列
sendDelay = false;
} else if (OrderInfoEnum.INVOICE_RETRY_1.getKey().equals(faildetail.getSFXYCS())){
} else if (OrderInfoEnum.INVOICE_RETRY_1.getKey().equals(faildetail.getSFXYCS())) {
//税控返回'可重试',需要根据企业是否暂停开票判断,开票数据是否放入延时队列
if(ConfigureConstant.STRING_0.equals(invoicingSwitch)){
if (ConfigureConstant.STRING_0.equals(invoicingSwitch)) {
//企业未暂停开票,开票数据放入延时队列
sendDelay = true;
} else if (ConfigureConstant.STRING_1.equals(invoicingSwitch)){
} else if (ConfigureConstant.STRING_1.equals(invoicingSwitch)) {
//企业已暂停开票,需要根据暂停开票原因判断开票数据是否放入延时队列
//如果税控返回的错误信息和销项后台配置的暂停开票原因一致则不放入延时队列
sendDelay = true;
if(taxEquipmentInfo.getFlagCode().equals(faildetail.getCWDM())){
if (taxEquipmentInfo.getFlagCode().equals(faildetail.getCWDM())) {
sendDelay = false;
}
}
} else if (OrderInfoEnum.INVOICE_RETRY_2.getKey().equals(faildetail.getSFXYCS())){
} else if (OrderInfoEnum.INVOICE_RETRY_2.getKey().equals(faildetail.getSFXYCS())) {
//税控返回'必须重试',开票数据放入延时队列
sendDelay = true;
@ -301,7 +303,7 @@ public class InvoiceReceiveController {
}
}
if(sendDelay){
if (sendDelay) {
if (OrderInfoEnum.INVOICE_STATUS_2.getKey().equals(oldOrderInvoiceInfo.getKpzt())) {
@ -413,16 +415,14 @@ public class InvoiceReceiveController {
@ApiOperation(value = "手动推送", notes = "开票结果接收-手动推送")
@PostMapping("/manualPushInvoice")
@SysLog(operation = "手动推送发票数据", operationDesc = "手动推送发票数据", key = "推送发票")
public R manualPushInvoice(HttpServletRequest request, @ApiParam(name = "ddqqlshArray", value = "订单流水号", required = true) @RequestBody String ddqqlshArray) {
public R manualPushInvoice(HttpServletRequest request, @ApiParam(name = "ddqqlshArray", value = "订单流水号", required = true) @RequestBody ManualPushInvoiceDTO dto) {
R r;
try {
if (StringUtils.isBlank(ddqqlshArray)) {
if (dto == null || CollectionUtils.isEmpty(dto.getList())) {
return R.error(OrderInfoContentEnum.INVOICE_PARAM_ERROR);
}
List<Map> idList = JSON.parseArray(ddqqlshArray, Map.class);
r = invoiceDataService.manualPushInvoice(idList);
r = invoiceDataService.manualPushInvoice(dto);
return r;
} catch (Exception e) {
log.error("{}手动回推发票异常:{}", LOGGER_MSG, e);

@ -0,0 +1,17 @@
package com.dxhy.order.consumer.modules.manager.model.dto;
import lombok.Data;
import java.util.List;
/**
* @Description
* @Author 巩权林
* @Date 2023/3/29 14:25
**/
@Data
public class ManualPushInvoiceDTO {
private List<ManualPushInvoiceDetailDTO> list;
private String bzdh;
}

@ -0,0 +1,14 @@
package com.dxhy.order.consumer.modules.manager.model.dto;
import lombok.Data;
/**
* @Description
* @Author 巩权林
* @Date 2023/3/29 14:28
**/
@Data
public class ManualPushInvoiceDetailDTO {
private String ddqqlsh;
private String xhfNsrsbh;
}

@ -1,5 +1,6 @@
package com.dxhy.order.consumer.modules.manager.service;
import com.dxhy.order.consumer.modules.manager.model.dto.ManualPushInvoiceDTO;
import com.dxhy.order.model.OrderInvoiceInfo;
import com.dxhy.order.model.R;
@ -19,7 +20,7 @@ public interface InvoiceDataService {
* @param orderInfoIds
* @return
*/
R manualPushInvoice(List<Map> orderInfoIds);
R manualPushInvoice(ManualPushInvoiceDTO orderInfoIds);
/**
* 更新订单和发票状态

@ -5,6 +5,8 @@ import com.dxhy.order.constant.ConfigureConstant;
import com.dxhy.order.constant.NsrQueueEnum;
import com.dxhy.order.constant.OrderInfoEnum;
import com.dxhy.order.constant.OrderManagementConstant;
import com.dxhy.order.consumer.modules.manager.model.dto.ManualPushInvoiceDTO;
import com.dxhy.order.consumer.modules.manager.model.dto.ManualPushInvoiceDetailDTO;
import com.dxhy.order.model.*;
import com.dxhy.order.model.queue.CommonTsMqData;
import com.dxhy.order.model.queue.FpTsMqData;
@ -54,15 +56,16 @@ public class InvoiceDataServiceImpl implements InvoiceDataService {
* 发票状态手动回推
*/
@Override
public R manualPushInvoice(List<Map> idList) {
@Transactional
public R manualPushInvoice(ManualPushInvoiceDTO dto) {
Set<String> set = new HashSet<>();
int successCount = 0;
for (Map map : idList) {
for (ManualPushInvoiceDetailDTO map : dto.getList()) {
OrderInvoiceInfo orderInvoiceInfo1 = new OrderInvoiceInfo();
String ddqqlsh = (String) map.get("ddqqlsh");
String nsrsbh = (String) map.get("xhfNsrsbh");
String ddqqlsh = map.getDdqqlsh();
String nsrsbh = map.getXhfNsrsbh();
List<String> shList = new ArrayList<>();
shList.add(nsrsbh);
orderInvoiceInfo1.setFpqqlsh(ddqqlsh);
@ -70,6 +73,21 @@ public class InvoiceDataServiceImpl implements InvoiceDataService {
if (orderInvoiceInfo == null) {
continue;
}
try {
List<String> xhfNsrsbhList = Collections.singletonList(map.getXhfNsrsbh());
// 新增回写报账单号
OrderProcessInfo orderProcessInfo = orderProcessInfoMapper.selectByOrderId(orderInvoiceInfo.getOrderInfoId(), xhfNsrsbhList);
if (ObjectUtil.isNull(orderProcessInfo)) {
return R.error("找不到订单处理业务");
}
orderProcessInfo.setBzdh(dto.getBzdh());
orderProcessInfoMapper.updateOrderProcessInfoByProcessId(orderProcessInfo, xhfNsrsbhList);
} catch (Exception e) {
e.printStackTrace();
log.error("{}回写报账单号异常", LOGGER_MSG, e);
}
//查询当前税号的销方信息是否配置推送地址
PushInfo queryPushInfo = new PushInfo();
//推送地址为有效
@ -210,7 +228,7 @@ public class InvoiceDataServiceImpl implements InvoiceDataService {
updateOrderProcessInfo.setUpdateTime(new Date());
int i1 = orderProcessInfoMapper.updateOrderProcessInfoByFpqqlsh(updateOrderProcessInfo, shList);
if (i1 <= 0) {
log.error("{}修改订单状态失败,数据为:{}", LOGGER_MSG,JsonUtils.getInstance().toJsonString(updateOrderProcessInfo));
log.error("{}修改订单状态失败,数据为:{}", LOGGER_MSG, JsonUtils.getInstance().toJsonString(updateOrderProcessInfo));
}
}

Loading…
Cancel
Save