feature:发票列表复制

zkh
路明慧 12 months ago
parent 0d38fe09da
commit de828cc611
  1. 37
      order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/controller/OrderHandleController.java
  2. 13
      order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/OrderHandleService.java
  3. 187
      order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/impl/OrderHandleServiceImpl.java

@ -3,12 +3,16 @@ package com.dxhy.order.consumer.modules.bespoke.controller;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson2.JSON;
import com.dxhy.base.common.model.R;
import com.dxhy.base.common.utils.JsonUtils;
import com.dxhy.base.common.utils.NsrsbhUtils;
import com.dxhy.management.common.constant.ConfigureConstant;
import com.dxhy.order.baseservice.annotation.SysLog;
import com.dxhy.order.baseservice.constant.OrderValidateEnum;
import com.dxhy.order.baseservice.exception.OrderReceiveException;
import com.dxhy.order.consumer.modules.bespoke.config.datasource.config.DynamicContextHolder;
import com.dxhy.order.consumer.modules.bespoke.model.req.ReqParam;
import com.dxhy.order.consumer.modules.bespoke.service.OrderHandleService;
import com.dxhy.order.invoice.module.invoice.model.OrderListQuery;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@ -20,6 +24,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Slf4j
@RestController
@ -195,5 +200,37 @@ public class OrderHandleController {
}
@PostMapping("/createOrderByCopyInvoice")
@ApiOperation(value = "发票复制生成订单", notes = "订单发票管理-发票复制生成订单")
@SysLog(operation = "发票复制生成订单", operationDesc = "发票复制生成订单", key = "发票复制生成订单")
public R createOrderByCopyInvoice(@RequestBody OrderListQuery orderBatchQuery) {
try {
log.debug("发票复制生成订单:{}", JsonUtils.getInstance().toJsonString(orderBatchQuery));
if (StringUtils.isBlank(orderBatchQuery.getXhfNsrsbh())) {
log.error("请求税号为空!");
return R.error(OrderValidateEnum.TAXCODE_ISNULL.getKey(), OrderValidateEnum.TAXCODE_ISNULL.getMessage());
}
//数据转化
List<String> shList = NsrsbhUtils.transShListByXhfNsrsbh(orderBatchQuery.getXhfNsrsbh());
List<String> entList = NsrsbhUtils.transShListByXhfNsrsbh(orderBatchQuery.getEntList());
List<String> fpqqlshList = JSON.parseArray(orderBatchQuery.getFpqqlshList(), String.class);
if (fpqqlshList == null || fpqqlshList.isEmpty()) {
return R.error("发票请求流水号不能为空");
}
int count = orderHandleService.createOrderByCopyInvoice(fpqqlshList.get(ConfigureConstant.INT_0), shList, entList,orderBatchQuery.getFpzldm());
return R.ok().put(ConfigureConstant.MSG, "订单复制成功");
} catch (OrderReceiveException e) {
log.error("发票复制订单异常", e);
return R.error(e.getMessage());
} catch (Exception e) {
log.error("发票复制订单异常", e);
return R.error();
}
}
}

@ -1,8 +1,11 @@
package com.dxhy.order.consumer.modules.bespoke.service;
import com.dxhy.base.common.model.R;
import com.dxhy.order.baseservice.exception.OrderReceiveException;
import com.dxhy.order.consumer.modules.bespoke.model.req.ReqParam;
import java.util.List;
public interface OrderHandleService {
/**
* 订单读入
@ -31,4 +34,14 @@ public interface OrderHandleService {
* @return
*/
R orderExtract(ReqParam reqParam);
/**
* 发票复制生成订单
* @param fpqqlsh
* @param shList
* @param entList
* @return
* @throws OrderReceiveException
*/
int createOrderByCopyInvoice(String fpqqlsh, List<String> shList, List<String> entList,String fpzldm) throws OrderReceiveException;
}

@ -1,15 +1,61 @@
package com.dxhy.order.consumer.modules.bespoke.service.impl;
import cn.hutool.extra.spring.SpringUtil;
import com.dxhy.base.common.constant.ConfigureConstant;
import com.dxhy.base.common.model.OrderInfo;
import com.dxhy.base.common.model.OrderItemInfo;
import com.dxhy.base.common.model.OrderProcessInfo;
import com.dxhy.base.common.model.R;
import com.dxhy.base.common.model.qd.OrderInfoQd;
import com.dxhy.base.common.utils.DistributedKeyMaker;
import com.dxhy.base.thirdservice.module.base.service.BaseService;
import com.dxhy.order.baseservice.exception.OrderReceiveException;
import com.dxhy.order.baseservice.model.OrderInvoiceInfo;
import com.dxhy.order.baseservice.model.OrderOriginExtendInfo;
import com.dxhy.order.consumer.dao.OrderOriginExtendInfoMapper;
import com.dxhy.order.consumer.dao.OrderProcessInfoMapper;
import com.dxhy.order.consumer.modules.bespoke.config.ServiceConfig;
import com.dxhy.order.consumer.modules.bespoke.model.req.ReqParam;
import com.dxhy.order.consumer.modules.bespoke.service.OrderHandleService;
import com.dxhy.order.consumer.modules.bespoke.service.OrderService;
import com.dxhy.order.invoice.module.invoice.dao.OrderInfoMapper;
import com.dxhy.order.invoice.module.invoice.dao.OrderInfoQdMapper;
import com.dxhy.order.invoice.module.invoice.dao.OrderInvoiceInfoMapper;
import com.dxhy.order.invoice.module.invoice.dao.OrderItemInfoMapper;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Slf4j
@Service
public class OrderHandleServiceImpl implements OrderHandleService {
@Resource
private OrderInvoiceInfoMapper orderInvoiceInfoMapper;
@Resource
private OrderInfoMapper orderInfoMapper;
@Resource
private OrderItemInfoMapper orderItemInfoMapper;
@Resource
private OrderProcessInfoMapper orderProcessInfoMapper;
@Resource
private OrderOriginExtendInfoMapper orderOriginExtendInfoMapper;
@Resource
private OrderInfoQdMapper orderInfoQdMapper;
@Resource
private BaseService baseService;
@Override
public R readOrder(ReqParam reqParam) {
//获取对应服务bean
@ -34,4 +80,143 @@ public class OrderHandleServiceImpl implements OrderHandleService {
OrderService orderService = SpringUtil.getBean(ServiceConfig.getService(reqParam.getNsrsbh()), OrderService.class);
return orderService.orderExtract(reqParam);
}
@Override
public int createOrderByCopyInvoice(String fpqqlsh, List<String> shList, List<String> entList,String fpzldm) throws OrderReceiveException {
//查询发票信息
OrderInvoiceInfo orderInvoiceInfoParam = new OrderInvoiceInfo();
orderInvoiceInfoParam.setFpqqlsh(fpqqlsh);
OrderInvoiceInfo orderInvoiceInfo = orderInvoiceInfoMapper.selectOrderInvoiceInfo(orderInvoiceInfoParam, shList);
if (orderInvoiceInfo == null) {
throw new OrderReceiveException(ConfigureConstant.STRING_9999, "未能查询到发票信息");
}
if (!ConfigureConstant.STRING_3.equals(orderInvoiceInfo.getFply())) {
throw new OrderReceiveException(ConfigureConstant.STRING_9999, "非接口导入数据不允许复制");
}
//查询order
OrderInfo orderInfo = orderInfoMapper.selectOrderInfoByOrderId(orderInvoiceInfo.getOrderInfoId(), shList);
if (orderInfo == null) {
throw new OrderReceiveException(ConfigureConstant.STRING_9999, "未能查询到订单信息");
}
String oldOrderId = orderInfo.getId();
//查询订单明细
List<OrderItemInfo> orderItemInfos = orderItemInfoMapper.selectOrderItemInfoByOrderId(orderInfo.getId(), shList);
if (orderItemInfos == null || orderItemInfos.isEmpty()) {
throw new OrderReceiveException(ConfigureConstant.STRING_9999, "未能查询到明细信息");
}
//查询order_process_info
OrderProcessInfo orderProcessInfoParam = new OrderProcessInfo();
orderProcessInfoParam.setId(orderInfo.getProcessId());
OrderProcessInfo orderProcessInfo = orderProcessInfoMapper.selectOrderProcessInfo(orderProcessInfoParam, shList);
if (orderProcessInfo == null) {
throw new OrderReceiveException(ConfigureConstant.STRING_9999, "未能查询到订单过程信息");
}
//处理订单信息
String orderId = baseService.getGenerateShotKey();
String orderProcessId = baseService.getGenerateShotKey();
String fpqqlshNew = DistributedKeyMaker.generateShotKey();
String ddh = orderInfo.getDdh().concat("copy");
log.info("订单号:{},长度{}",ddh,ddh.length());
if (ddh.length()>50){
log.info("ddh长度大于50,截取后50位");
ddh = ddh.substring(ddh.length()-50);
log.info("截取后50位ddh:"+ddh);
}
Date now = new Date();
//订单信息修改
orderInfo.setId(orderId);
orderInfo.setProcessId(orderProcessId);
orderInfo.setFpqqlsh(fpqqlshNew);
orderInfo.setDdh(ddh);
orderInfo.setDdlx(ConfigureConstant.STRING_0);
orderInfo.setDdrq(now);
orderInfo.setFpzlDm(fpzldm);
orderInfo.setByzd1(fpqqlsh);
orderInfo.setUpdateTime(now);
orderInfo.setCreateTime(now);
orderInfoMapper.insertOrderInfo(orderInfo);
//订单明细处理和入库
for (OrderItemInfo orderItemInfo : orderItemInfos) {
orderItemInfo.setId(baseService.getGenerateShotKey());
orderItemInfo.setOrderInfoId(orderId);
orderItemInfo.setCreateTime(now);
orderItemInfoMapper.insertOrderItemInfo(orderItemInfo);
}
//order_invoice_Info
orderInvoiceInfo.setId(baseService.getGenerateShotKey());
orderInvoiceInfo.setOrderInfoId(orderId);
orderInvoiceInfo.setOrderProcessInfoId(orderProcessId);
orderInvoiceInfo.setFpqqlsh(fpqqlshNew);
orderInvoiceInfo.setDdh(ddh);
orderInvoiceInfo.setFply(ConfigureConstant.STRING_3);
orderInvoiceInfo.setKpzt(ConfigureConstant.STRING_0);
orderInvoiceInfo.setKprq(null);
orderInvoiceInfo.setFphm("");
orderInvoiceInfo.setFpdm("");
orderInvoiceInfo.setSdfphm("");
orderInvoiceInfo.setJym("");
orderInvoiceInfo.setSbdm("");
orderInvoiceInfo.setSbyy("");
orderInvoiceInfo.setSkcwms("");
orderInvoiceInfo.setSkcwdm("");
orderInvoiceInfo.setCreateTime(now);
orderInvoiceInfo.setUpdateTime(now);
orderInvoiceInfo.setFwm("");
orderInvoiceInfo.setEwm("");
orderInvoiceInfo.setJqbh("");
orderInvoiceInfo.setPdfUrl("");
orderInvoiceInfo.setRzZt("");
orderInvoiceInfo.setZfyy("");
orderInvoiceInfo.setFpzlDm(fpzldm);
String kplsh = baseService.getGenerateShotKey();
orderInvoiceInfo.setKplsh(kplsh);
orderInvoiceInfoMapper.insertOrderInvoiceInfo(orderInvoiceInfo);
//order_process_info
orderProcessInfo.setId(orderProcessId);
orderProcessInfo.setOrderInfoId(orderId);
orderProcessInfo.setFpqqlsh(fpqqlshNew);
orderProcessInfo.setDdh(ddh);
orderProcessInfo.setDdcjsj(now);
orderProcessInfo.setDdlx(ConfigureConstant.STRING_0);
orderProcessInfo.setDdzt(ConfigureConstant.STRING_0);
orderProcessInfo.setDdly(ConfigureConstant.STRING_3);
orderProcessInfo.setSbyy("");
orderProcessInfo.setFpzlDm(fpzldm);
orderProcessInfo.setOrderStatus(ConfigureConstant.STRING_0);
orderProcessInfo.setDdqqpch(fpqqlshNew);
orderProcessInfoMapper.insertOrderProcessInfo(orderProcessInfo);
//扩展表
OrderOriginExtendInfo orderOriginExtendInfoSelect = new OrderOriginExtendInfo();
orderOriginExtendInfoSelect.setOrderId(oldOrderId);
List<OrderOriginExtendInfo> orderOriginExtendInfos = orderOriginExtendInfoMapper.queryOriginOrderByOrder(orderOriginExtendInfoSelect, shList);
if (CollectionUtils.isNotEmpty(orderOriginExtendInfos)){
for (OrderOriginExtendInfo orderOriginExtendInfo : orderOriginExtendInfos) {
OrderOriginExtendInfo orderOrginOrder = new OrderOriginExtendInfo();
orderOrginOrder.setCreateTime(now);
orderOrginOrder.setUpdateTime(now);
orderOrginOrder.setId(baseService.getGenerateShotKey());
orderOrginOrder.setOrderId(orderId);
orderOrginOrder.setFpqqlsh(fpqqlshNew);
orderOrginOrder.setOriginFpqqlsh(orderOriginExtendInfo.getOriginFpqqlsh());
orderOrginOrder.setOriginOrderId(orderOriginExtendInfo.getOriginOrderId());
orderOrginOrder.setOriginDdh(orderOriginExtendInfo.getOriginDdh());
orderOrginOrder.setXhfNsrsbh(orderInfo.getXhfNsrsbh());
orderOrginOrder.setStatus(ConfigureConstant.STRING_0);
orderOriginExtendInfoMapper.insertOrderOriginExtend(orderOrginOrder);
}
}
//全电表
OrderInfoQd orderInfoQd = orderInfoQdMapper.queryOrderInfoQdByFpqqlsh(fpqqlsh, shList);
if (ObjectUtils.isNotEmpty(orderInfoQd)) {
orderInfoQd.setId(baseService.getGenerateShotKey());
orderInfoQd.setOrderId(orderId);
orderInfoQd.setProcessId(orderProcessId);
orderInfoQd.setFpqqlsh(fpqqlshNew);
orderInfoQd.setCreateTime(now);
orderInfoQd.setUpdateTime(now);
orderInfoQdMapper.insertOrderInfoQd(orderInfoQd);
}
return ConfigureConstant.INT_1;
}
}

Loading…
Cancel
Save