|
|
|
@ -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; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|