|
|
|
@ -1,7 +1,9 @@ |
|
|
|
|
package com.dxhy.order.consumer.modules.bespoke.service.impl; |
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
|
import com.alibaba.fastjson2.JSON; |
|
|
|
|
import com.dxhy.base.common.constant.OrderManagementConstant; |
|
|
|
|
import com.dxhy.base.common.model.OrderItemInfo; |
|
|
|
|
import com.dxhy.base.common.model.R; |
|
|
|
|
import com.dxhy.base.common.utils.DecimalCalculateUtil; |
|
|
|
|
import com.dxhy.base.service.module.buyer.model.BuyerEntity; |
|
|
|
@ -16,31 +18,35 @@ import com.dxhy.base.thirdservice.module.base.service.BaseService; |
|
|
|
|
import com.dxhy.management.common.constant.ConfigureConstant; |
|
|
|
|
import com.dxhy.order.baseservice.constant.ConfigurerInfo; |
|
|
|
|
import com.dxhy.order.baseservice.constant.OrderValidateEnum; |
|
|
|
|
import com.dxhy.order.baseservice.model.OrderInvoiceInfo; |
|
|
|
|
import com.dxhy.order.baseservice.model.OrderOriginExtendInfo; |
|
|
|
|
import com.dxhy.order.consumer.dao.YyOrderInfoMapper; |
|
|
|
|
import com.dxhy.order.consumer.dao.YyOrderItemInfoMapper; |
|
|
|
|
import com.dxhy.order.consumer.dao.YyOrderMapper; |
|
|
|
|
import com.dxhy.order.consumer.modules.bespoke.config.datasource.config.DynamicContextHolder; |
|
|
|
|
import com.dxhy.order.consumer.modules.bespoke.model.req.FileModel; |
|
|
|
|
import com.dxhy.order.consumer.modules.bespoke.model.req.ReqParam; |
|
|
|
|
import com.dxhy.order.consumer.modules.bespoke.model.sk.SkOrderInfo; |
|
|
|
|
import com.dxhy.order.consumer.modules.bespoke.model.sk.SkOrderItemInfo; |
|
|
|
|
import com.dxhy.order.consumer.modules.bespoke.model.yy.InvoiceBpmmap; |
|
|
|
|
import com.dxhy.order.consumer.modules.bespoke.model.yy.NewTable; |
|
|
|
|
import com.dxhy.order.consumer.modules.bespoke.model.yy.YyOrderInfo; |
|
|
|
|
import com.dxhy.order.consumer.modules.bespoke.model.yy.YyOrderItemInfo; |
|
|
|
|
import com.dxhy.order.consumer.modules.bespoke.service.OrderService; |
|
|
|
|
import com.dxhy.order.consumer.openapi.protocol.v4.order.*; |
|
|
|
|
import com.dxhy.order.consumer.openapi.protocol.v6.order.QdTxxBO; |
|
|
|
|
import com.dxhy.order.consumer.openapi.service.AllocateInvoiceInterfaceServiceV3; |
|
|
|
|
import com.dxhy.order.invoice.module.invoice.dao.OrderItemInfoMapper; |
|
|
|
|
import com.github.pagehelper.PageInfo; |
|
|
|
|
import com.github.pagehelper.page.PageMethod; |
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
import org.apache.commons.collections4.CollectionUtils; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
|
import java.math.BigDecimal; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Date; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Optional; |
|
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
|
|
@Slf4j |
|
|
|
|
@Service("yyOrderService") |
|
|
|
@ -70,6 +76,9 @@ public class YyOrderServiceImpl implements OrderService { |
|
|
|
|
@Resource |
|
|
|
|
private SimsBackService simsBackService; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private OrderItemInfoMapper orderItemInfoMapper; |
|
|
|
|
|
|
|
|
|
//订单读入
|
|
|
|
|
@Override |
|
|
|
|
public R orderRead(ReqParam reqParam) { |
|
|
|
@ -80,7 +89,7 @@ public class YyOrderServiceImpl implements OrderService { |
|
|
|
|
List<YyOrderInfo> yyOrderInfoList = yyOrderMapper.findOrderHeadList(reqParam); |
|
|
|
|
log.debug("查询到订单数据:{}", JSON.toJSONString(yyOrderInfoList)); |
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(yyOrderInfoList)){ |
|
|
|
|
if (CollectionUtils.isNotEmpty(yyOrderInfoList)) { |
|
|
|
|
|
|
|
|
|
for (YyOrderInfo yyOrderInfo : yyOrderInfoList) { |
|
|
|
|
|
|
|
|
@ -88,14 +97,14 @@ public class YyOrderServiceImpl implements OrderService { |
|
|
|
|
List<YyOrderItemInfo> yyOrderItemInfoList = yyOrderMapper.findOrderDetailList(yyOrderInfo.getCdlcode()); |
|
|
|
|
log.debug("查询到订单明细数据:{}", JSON.toJSONString(yyOrderItemInfoList)); |
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(yyOrderItemInfoList)){ |
|
|
|
|
if (CollectionUtils.isNotEmpty(yyOrderItemInfoList)) { |
|
|
|
|
DynamicContextHolder.push(ConfigureConstant.MAIN); |
|
|
|
|
count+= saveOrder(yyOrderInfo, yyOrderItemInfoList, reqParam); |
|
|
|
|
count += saveOrder(yyOrderInfo, yyOrderItemInfoList, reqParam); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return R.ok("成功读取"+count+"条订单数据"); |
|
|
|
|
return R.ok("成功读取" + count + "条订单数据"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -113,7 +122,7 @@ public class YyOrderServiceImpl implements OrderService { |
|
|
|
|
public R delOrder(ReqParam reqParam) { |
|
|
|
|
int count = yyOrderInfoMapper.delOrder(reqParam); |
|
|
|
|
yyOrderItemInfoMapper.delOrder(reqParam.getIds()); |
|
|
|
|
return R.ok("成功删除"+count+"条订单数据"); |
|
|
|
|
return R.ok("成功删除" + count + "条订单数据"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -143,17 +152,19 @@ public class YyOrderServiceImpl implements OrderService { |
|
|
|
|
for (YyOrderInfo yyOrderInfo : yyOrderInfoList) { |
|
|
|
|
try { |
|
|
|
|
List<YyOrderItemInfo> yyOrderItemInfoList = yyOrderItemInfoMapper.queryOrderItemInfo(yyOrderInfo.getId()); |
|
|
|
|
if (CollectionUtils.isNotEmpty(yyOrderItemInfoList)){ |
|
|
|
|
DdpcxxReqBO ddpcxxReqBO = transitionReadData(yyOrderInfo,yyOrderItemInfoList, deptEntity); |
|
|
|
|
if (CollectionUtils.isNotEmpty(yyOrderItemInfoList)) { |
|
|
|
|
DdpcxxReqBO ddpcxxReqBO = transitionReadData(yyOrderInfo, yyOrderItemInfoList, deptEntity); |
|
|
|
|
DdpcxxRspBO ddpcxxRspBO = allocateInvoiceInterfaceServiceImplV3.allocateInvoicesV3(ddpcxxReqBO, "", null, ConfigurerInfo.INTERFACE_VERSION_V6); |
|
|
|
|
log.debug("V3生成预制返回信息:{}", JSON.toJSONString(ddpcxxRspBO)); |
|
|
|
|
String format = String.format(message, yyOrderInfo.getCdlcode(), ddpcxxRspBO.getZTXX()); |
|
|
|
|
if (ddpcxxRspBO.getZTDM().equals(OrderValidateEnum.INVOICE_ERROR_CODE_010000_V3.getKey())) { |
|
|
|
|
backMessage.add(com.dxhy.base.common.constant.ConfigureConstant.INT_0, format); |
|
|
|
|
//添加状态修改
|
|
|
|
|
yyOrderInfoMapper.updateStatus(yyOrderInfo.getCdlcode(), ConfigureConstant.STRING_1); |
|
|
|
|
backMessage.add(ConfigureConstant.INT_0, format); |
|
|
|
|
} else { |
|
|
|
|
backMessage.add(format); |
|
|
|
|
} |
|
|
|
|
}else { |
|
|
|
|
} else { |
|
|
|
|
backMessage.add(String.format(message, yyOrderInfo.getCdlcode(), "订单明细信息丢失请删除重新读入")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -167,11 +178,62 @@ public class YyOrderServiceImpl implements OrderService { |
|
|
|
|
return R.ok(backMessage); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R backMsg(OrderInvoiceInfo orderInvoiceInfo, List<OrderOriginExtendInfo> orderOriginExtendInfos, FileModel fileModel) { |
|
|
|
|
|
|
|
|
|
List<NewTable> newTableList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
for (OrderOriginExtendInfo orderOriginExtendInfo : orderOriginExtendInfos) { |
|
|
|
|
|
|
|
|
|
NewTable newTable = new NewTable(); |
|
|
|
|
newTable.setCDLCode(orderOriginExtendInfo.getOriginDdh()); |
|
|
|
|
newTable.setInvoiceCode(orderInvoiceInfo.getSdfphm()); |
|
|
|
|
newTable.setInvoiceTime(orderInvoiceInfo.getKprq()); |
|
|
|
|
newTable.setInvoiceAmount(orderInvoiceInfo.getKphjje()); |
|
|
|
|
newTable.setInvoicePhoto(fileModel.getFilePath()); |
|
|
|
|
newTable.setInvoiceFilename(fileModel.getFileName()); |
|
|
|
|
newTable.setOperater(orderInvoiceInfo.getKpr()); |
|
|
|
|
newTable.setOperateDate(orderInvoiceInfo.getKprq()); |
|
|
|
|
newTableList.add(newTable); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
log.debug("待回传数据:{}", JSON.toJSONString(newTableList)); |
|
|
|
|
DynamicContextHolder.push(orderInvoiceInfo.getXhfNsrsbh()); |
|
|
|
|
int count = accressReback(newTableList); |
|
|
|
|
|
|
|
|
|
if (count >=newTableList.size()){ |
|
|
|
|
return R.ok("成功回传" + count + "条数据"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return R.error("回传失败"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Transactional |
|
|
|
|
public int accressReback(List<NewTable> newTableList) { |
|
|
|
|
|
|
|
|
|
int count = ConfigureConstant.INT_0; |
|
|
|
|
for (NewTable newTable : newTableList) { |
|
|
|
|
List<InvoiceBpmmap> ddbhList = yyOrderMapper.getDdbh(newTable.getCDLCode()); |
|
|
|
|
log.debug("查询到中间表信息:{}", JSON.toJSONString(ddbhList)); |
|
|
|
|
if (CollectionUtils.isNotEmpty(ddbhList)){ |
|
|
|
|
for (InvoiceBpmmap invoiceBpmmap : ddbhList) { |
|
|
|
|
NewTable newTableFull = new NewTable(); |
|
|
|
|
BeanUtil.copyProperties(newTable, newTableFull); |
|
|
|
|
newTableFull.setBpmNo(invoiceBpmmap.getBpmno()); |
|
|
|
|
newTableFull.setBpmlsNo(invoiceBpmmap.getBpmlsno()); |
|
|
|
|
count+= yyOrderMapper.insertBackMsg(newTableFull); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return count; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Transactional |
|
|
|
|
public int saveOrder(YyOrderInfo yyOrderInfo, List<YyOrderItemInfo> yyOrderItemInfoList, ReqParam reqParam) { |
|
|
|
|
|
|
|
|
|
YyOrderInfo checkOrderExist = yyOrderInfoMapper.checkOrderExist(yyOrderInfo.getCdlcode()); |
|
|
|
|
if (checkOrderExist != null){ |
|
|
|
|
if (checkOrderExist != null) { |
|
|
|
|
log.debug("订单已存在,订单编号:{}", yyOrderInfo.getCdlcode()); |
|
|
|
|
return ConfigureConstant.INT_0; |
|
|
|
|
} |
|
|
|
@ -198,10 +260,10 @@ public class YyOrderServiceImpl implements OrderService { |
|
|
|
|
yyOrderInfo.setDetailCount(String.valueOf(yyOrderItemInfoList.size())); |
|
|
|
|
yyOrderInfo.setHsje(hsje.add(se).setScale(ConfigureConstant.INT_2).toPlainString()); |
|
|
|
|
yyOrderInfo.setSe(se.setScale(ConfigureConstant.INT_2).toPlainString()); |
|
|
|
|
if (yyOrderInfo.getCvouchtype().equals(ConfigureConstant.STRING_26)){ |
|
|
|
|
if (yyOrderInfo.getCvouchtype().equals(ConfigureConstant.STRING_26)) { |
|
|
|
|
yyOrderInfo.setCvouchtype(ConfigureConstant.STRING_001); |
|
|
|
|
} |
|
|
|
|
if (yyOrderInfo.getCvouchtype().equals(ConfigureConstant.STRING_27)){ |
|
|
|
|
if (yyOrderInfo.getCvouchtype().equals(ConfigureConstant.STRING_27)) { |
|
|
|
|
yyOrderInfo.setCvouchtype(ConfigureConstant.STRING_002); |
|
|
|
|
} |
|
|
|
|
yyOrderInfoMapper.insertYyOrderInfo(yyOrderInfo); |
|
|
|
@ -276,6 +338,7 @@ public class YyOrderServiceImpl implements OrderService { |
|
|
|
|
ddmxxxBO.setFPHXZ(ConfigureConstant.STRING_0); |
|
|
|
|
ddmxxxBO.setHSBZ(ConfigureConstant.STRING_1); |
|
|
|
|
ddmxxxBO.setBYZD1(yyOrderItemInfo.getIunitprice()); |
|
|
|
|
ddmxxxBO.setBYZD2(yyOrderItemInfo.getYyItemId()); |
|
|
|
|
//累计求金额和税额
|
|
|
|
|
invoiceAmount = DecimalCalculateUtil.bigDecimalAdd(invoiceAmount, yyOrderItemInfo.getIsum(), ConfigureConstant.INT_2); |
|
|
|
|
taxAmount = DecimalCalculateUtil.bigDecimalAdd(taxAmount, yyOrderItemInfo.getItax(), ConfigureConstant.INT_2); |
|
|
|
|