diff --git a/order-management-order/src/main/java/com/dxhy/order/consumer/dao/SkOrderMapper.java b/order-management-order/src/main/java/com/dxhy/order/consumer/dao/SkOrderMapper.java index a9930a4..3e058ec 100644 --- a/order-management-order/src/main/java/com/dxhy/order/consumer/dao/SkOrderMapper.java +++ b/order-management-order/src/main/java/com/dxhy/order/consumer/dao/SkOrderMapper.java @@ -13,4 +13,6 @@ public interface SkOrderMapper { //查询订单明细信息 List findOrderDetailList(String xsddm); + + int updateOrder(SkOrderInfo skOrderInfo); } diff --git a/order-management-order/src/main/java/com/dxhy/order/consumer/dao/YyOrderInfoMapper.java b/order-management-order/src/main/java/com/dxhy/order/consumer/dao/YyOrderInfoMapper.java index 63f8e2f..6f9deef 100644 --- a/order-management-order/src/main/java/com/dxhy/order/consumer/dao/YyOrderInfoMapper.java +++ b/order-management-order/src/main/java/com/dxhy/order/consumer/dao/YyOrderInfoMapper.java @@ -2,6 +2,7 @@ package com.dxhy.order.consumer.dao; import com.dxhy.order.consumer.modules.bespoke.model.req.ReqParam; import com.dxhy.order.consumer.modules.bespoke.model.yy.YyOrderInfo; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -18,4 +19,8 @@ public interface YyOrderInfoMapper { //删除订单 int delOrder(ReqParam reqParam); + + int updateStatus(@Param("cdlcode") String cdlcode, @Param("status") String status); + + YyOrderInfo getSaveOrder(String originDdh); } diff --git a/order-management-order/src/main/java/com/dxhy/order/consumer/dao/YyOrderMapper.java b/order-management-order/src/main/java/com/dxhy/order/consumer/dao/YyOrderMapper.java index eb4c7c1..99de725 100644 --- a/order-management-order/src/main/java/com/dxhy/order/consumer/dao/YyOrderMapper.java +++ b/order-management-order/src/main/java/com/dxhy/order/consumer/dao/YyOrderMapper.java @@ -1,6 +1,8 @@ package com.dxhy.order.consumer.dao; import com.dxhy.order.consumer.modules.bespoke.model.req.ReqParam; +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; @@ -13,4 +15,10 @@ public interface YyOrderMapper { //订单明细读取 List findOrderDetailList(String cdlcode); + + //插入回写信息 + int insertBackMsg(NewTable newTable); + + //根据订单编号查询订单信息 + List getDdbh(String cdlCode); } diff --git a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/req/FileModel.java b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/req/FileModel.java new file mode 100644 index 0000000..4cd865b --- /dev/null +++ b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/req/FileModel.java @@ -0,0 +1,10 @@ +package com.dxhy.order.consumer.modules.bespoke.model.req; + +import lombok.Data; + +@Data +public class FileModel { + private String code; + private String fileName; + private String filePath; +} diff --git a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/sk/SkOrderInfo.java b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/sk/SkOrderInfo.java index 2089c53..34be181 100644 --- a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/sk/SkOrderInfo.java +++ b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/sk/SkOrderInfo.java @@ -81,4 +81,14 @@ public class SkOrderInfo { * 修改时间 */ private Date updateTime; + + /** + * 发票号码 + */ + private String fph; + + /** + * 发票代码 + */ + private String biaoshi; } diff --git a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/yy/InvoiceBpmmap.java b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/yy/InvoiceBpmmap.java new file mode 100644 index 0000000..51a033d --- /dev/null +++ b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/yy/InvoiceBpmmap.java @@ -0,0 +1,13 @@ +package com.dxhy.order.consumer.modules.bespoke.model.yy; + +import lombok.Data; + +@Data +public class InvoiceBpmmap { + + private String cdlcode; + + private String bpmno; + + private String bpmlsno; +} diff --git a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/yy/NewTable.java b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/yy/NewTable.java new file mode 100644 index 0000000..fff5049 --- /dev/null +++ b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/yy/NewTable.java @@ -0,0 +1,38 @@ +package com.dxhy.order.consumer.modules.bespoke.model.yy; + +import lombok.Data; + +import java.util.Date; + +@Data +public class NewTable { + + //自增ID + private int autoId; + //发货单号 + private String cDLCode; + //发票号 + private String invoiceNo; + //发票代码 + private String invoiceCode; + //开票时间 + private Date invoiceTime; + //开票金额 + private String invoiceAmount; + //发票图片,文件存储路径 + private String invoicePhoto; + //发票文件名 + private String invoiceFilename; + //订单明细id + private String bpmlsNo; + //订单号 + private String bpmNo; + //开票人 + private String operater; + //操作时间 + private Date operateDate; + //开票主体,存储的税号 + private String shipper; + //状态,系统对接的默认值为1 + private String status; +} diff --git a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/yy/YyOrderItemInfo.java b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/yy/YyOrderItemInfo.java index 106ea64..0256673 100644 --- a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/yy/YyOrderItemInfo.java +++ b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/model/yy/YyOrderItemInfo.java @@ -59,4 +59,9 @@ public class YyOrderItemInfo { * 修改时间 */ private Date updateTime; + + /** + * 用友订单明细id + */ + private String yyItemId; } diff --git a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/OrderHandleService.java b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/OrderHandleService.java index 38312e3..47d2214 100644 --- a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/OrderHandleService.java +++ b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/OrderHandleService.java @@ -1,8 +1,10 @@ package com.dxhy.order.consumer.modules.bespoke.service; +import cn.hutool.core.io.file.FileMode; import com.dxhy.base.common.model.R; import com.dxhy.order.baseservice.exception.OrderReceiveException; import com.dxhy.order.baseservice.model.OrderInvoiceInfo; +import com.dxhy.order.consumer.modules.bespoke.model.req.FileModel; import com.dxhy.order.consumer.modules.bespoke.model.req.ReqParam; import java.util.List; @@ -47,7 +49,7 @@ public interface OrderHandleService { int createOrderByCopyInvoice(String fpqqlsh, List shList, List entList,String fpzldm) throws OrderReceiveException; - String saveInvoiceFile(OrderInvoiceInfo orderInvoiceInfo); + FileModel saveInvoiceFile(OrderInvoiceInfo orderInvoiceInfo); /** * 发送邮件 @@ -55,4 +57,12 @@ public interface OrderHandleService { * @return */ int emailSend(ReqParam reqParam); + + /** + * huixie + * @param msg + * @return + */ + R backMsg(String msg); + } diff --git a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/OrderService.java b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/OrderService.java index 239a36f..6f37e29 100644 --- a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/OrderService.java +++ b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/OrderService.java @@ -1,8 +1,13 @@ package com.dxhy.order.consumer.modules.bespoke.service; import com.dxhy.base.common.model.R; +import com.dxhy.order.baseservice.model.OrderInvoiceInfo; +import com.dxhy.order.baseservice.model.OrderOriginExtendInfo; +import com.dxhy.order.consumer.modules.bespoke.model.req.FileModel; import com.dxhy.order.consumer.modules.bespoke.model.req.ReqParam; +import java.util.List; + public interface OrderService { //订单读入 @@ -16,4 +21,8 @@ public interface OrderService { //生成预制发票 R orderExtract(ReqParam reqParam); + + //订单回传 + R backMsg(OrderInvoiceInfo orderInvoiceInfo,List orderOriginExtendInfos, FileModel fileModel); + } diff --git a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/impl/OrderHandleServiceImpl.java b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/impl/OrderHandleServiceImpl.java index 95d4d22..ce8a1ab 100644 --- a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/impl/OrderHandleServiceImpl.java +++ b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/impl/OrderHandleServiceImpl.java @@ -1,5 +1,6 @@ package com.dxhy.order.consumer.modules.bespoke.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.extra.spring.SpringUtil; @@ -20,12 +21,15 @@ import com.dxhy.order.baseservice.constant.NsrQueueEnum; 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.baseservice.model.queue.CommonTsMqData; import com.dxhy.order.baseservice.model.queue.FpYxTsMqData; import com.dxhy.order.consumer.dao.OrderOriginExtendInfoMapper; import com.dxhy.order.consumer.dao.OrderProcessInfoMapper; import com.dxhy.order.consumer.modules.bespoke.config.FtpConfig; import com.dxhy.order.consumer.modules.bespoke.config.FtpProperties; import com.dxhy.order.consumer.modules.bespoke.config.ServiceConfig; +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.service.FtpProcessor; import com.dxhy.order.consumer.modules.bespoke.service.OrderHandleService; @@ -41,6 +45,7 @@ import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateUtils; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -49,6 +54,7 @@ import javax.annotation.Resource; import java.io.ByteArrayInputStream; import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.jar.Pack200; @@ -257,7 +263,11 @@ public class OrderHandleServiceImpl implements OrderHandleService { } @Override - public String saveInvoiceFile(OrderInvoiceInfo orderInvoiceInfo) { + public FileModel saveInvoiceFile(OrderInvoiceInfo orderInvoiceInfo) { + + //返回实体 + FileModel fileModel = new FileModel(); + //查询文件 Date kprq = orderInvoiceInfo.getKprq(); String xhfNsrsbh = orderInvoiceInfo.getXhfNsrsbh(); String entId = orderInvoiceInfo.getEntId(); @@ -265,6 +275,10 @@ public class OrderHandleServiceImpl implements OrderHandleService { TaxEquipmentInfo taxEquipmentInfo = simsBackService.queryTaxEquipment(xhfNsrsbh, entId); //获取文件 List invoiceFile = orderInvoiceInfoService.getInvoiceFile("", orderInvoiceInfo, taxEquipmentInfo.getSksbCode(), OrderInfoEnum.FILE_TYPE_PDF.getKey()); + if (CollectionUtils.isEmpty(invoiceFile)) { + fileModel.setCode(ConfigureConstant.STRING_9999); + return fileModel; + } FileDownLoad fileDownLoad = invoiceFile.get(ConfigureConstant.INT_0); //拼接路径 StringBuilder path = new StringBuilder(ftpProperties.getBasePath()); @@ -286,9 +300,13 @@ public class OrderHandleServiceImpl implements OrderHandleService { boolean flag = ftpProcessor.uploadFile(path.toString(), fileDownLoad.getFileName(), utf8Stream); if (flag){ - return path.append(ConfigureConstant.STRING_SLASH_LINE).append(fileDownLoad.getFileName()).toString(); + fileModel.setCode(ConfigureConstant.STRING_0000); + fileModel.setFilePath(path.toString()); + fileModel.setFileName(fileDownLoad.getFileName()); + return fileModel; } - return ""; + fileModel.setCode(ConfigureConstant.STRING_9999); + return fileModel; } @Override @@ -326,4 +344,71 @@ public class OrderHandleServiceImpl implements OrderHandleService { return count; } + + @Override + public R backMsg(String message) { + CommonTsMqData commonTsMqData = JsonUtils.getInstance().parseObject(message, CommonTsMqData.class); + List shList = Arrays.asList(commonTsMqData.getNsrsbh()); + + OrderInvoiceInfo orderInvoiceInfo = orderInvoiceInfoService.selectOrderInvoiceInfoByFpqqlsh(commonTsMqData.getFpTsMqData().getFpqqlsh(), shList); + if (ObjectUtils.isEmpty(orderInvoiceInfo)){ + log.error("发票信息不存在无法进行推送"); + updatePushErrorMsgToDb(commonTsMqData.getFpTsMqData().getFpqqlsh(),"发票信息不存在无法进行推送", shList); + return R.error("发票信息不存在"); + } + //保存版式文件到ftp + FileModel fileModel = saveInvoiceFile(orderInvoiceInfo); + + //获取原始订单信息 + OrderOriginExtendInfo orderOriginExtendInfo = new OrderOriginExtendInfo(); + orderOriginExtendInfo.setOrderId(orderInvoiceInfo.getOrderInfoId()); + List orderOriginExtendInfos = orderOriginExtendInfoMapper.queryOriginOrderByOrder(orderOriginExtendInfo, shList); + if (CollectionUtils.isEmpty(orderOriginExtendInfos)){ + updatePushErrorMsgToDb(commonTsMqData.getFpTsMqData().getFpqqlsh(),"原始订单信息不存在无法进行推送", shList); + log.error("原始订单信息不存在无法进行推送"); + } + OrderService orderService = SpringUtil.getBean(ServiceConfig.getService(commonTsMqData.getNsrsbh()), OrderService.class); + R r; + try { + r = orderService.backMsg(orderInvoiceInfo,orderOriginExtendInfos,fileModel); + }catch (Exception e){ + log.error("推送失败", e); + r = R.error("推送时发生异常"); + }finally { + DynamicContextHolder.push(com.dxhy.management.common.constant.ConfigureConstant.MAIN); + } + + if (ConfigureConstant.STRING_0000.equals(r.get(ConfigureConstant.CODE))){ + updateSuccessMsg(commonTsMqData.getFpTsMqData().getFpqqlsh(), shList); + log.info("推送成功"); + } + updatePushErrorMsgToDb(commonTsMqData.getFpTsMqData().getFpqqlsh(),r.get(ConfigureConstant.MSG).toString(), shList); + return r; + } + + private void updatePushErrorMsgToDb(String fpqqlsh, String errorMessage, List shList) { + if (StringUtils.isNotBlank(fpqqlsh) && CollUtil.isNotEmpty(shList)) { + OrderInvoiceInfo orderQuery = new OrderInvoiceInfo(); + orderQuery.setFpqqlsh(fpqqlsh); + orderQuery.setPushStatus(OrderInfoEnum.PUSH_STATUS_2.getKey()); + orderQuery.setInvoicePushSbyy(errorMessage); + int updateByPrimaryKeySelective = orderInvoiceInfoService.updateOrderInvoiceInfoByFpqqlsh(orderQuery, shList); + if (updateByPrimaryKeySelective <= 0) { + log.error("{}推送状态更新失败"); + } + } + } + + + private void updateSuccessMsg(String fpqqlsh, List shList) { + if (StringUtils.isNotBlank(fpqqlsh) && CollUtil.isNotEmpty(shList)) { + OrderInvoiceInfo orderQuery = new OrderInvoiceInfo(); + orderQuery.setFpqqlsh(fpqqlsh); + orderQuery.setPushStatus(OrderInfoEnum.PUSH_STATUS_1.getKey()); + int updateByPrimaryKeySelective = orderInvoiceInfoService.updateOrderInvoiceInfoByFpqqlsh(orderQuery, shList); + if (updateByPrimaryKeySelective <= 0) { + log.error("{}推送状态更新失败"); + } + } + } } diff --git a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/impl/SkOrderServiceImpl.java b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/impl/SkOrderServiceImpl.java index d66ee80..2c47ba7 100644 --- a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/impl/SkOrderServiceImpl.java +++ b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/impl/SkOrderServiceImpl.java @@ -18,10 +18,13 @@ import com.dxhy.management.common.constant.ConfigureConstant; import com.dxhy.management.model.excel.InvoiceCountExcel; 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.SkOrderInfoMapper; import com.dxhy.order.consumer.dao.SkOrderItemInfoMapper; import com.dxhy.order.consumer.dao.SkOrderMapper; 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; @@ -167,6 +170,19 @@ public class SkOrderServiceImpl implements OrderService { return R.ok(backMessage); } + @Override + public R backMsg(OrderInvoiceInfo orderInvoiceInfo, List orderOriginExtendInfos, FileModel fileModel) { + + for (OrderOriginExtendInfo orderOriginExtendInfo : orderOriginExtendInfos) { + SkOrderInfo skOrderInfo = new SkOrderInfo(); + skOrderInfo.setXsddm(orderOriginExtendInfo.getOriginDdh()); + skOrderInfo.setFph(orderInvoiceInfo.getSdfphm()); + skOrderInfo.setBiaoshi(orderInvoiceInfo.getKplx()); + skOrderMapper.updateOrder(skOrderInfo); + } + return R.ok(); + } + @Transactional public int saveOrder(SkOrderInfo skOrderInfo, List skOrderItemInfoList, ReqParam reqParam) { diff --git a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/impl/YyOrderServiceImpl.java b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/impl/YyOrderServiceImpl.java index 5d2df82..0fbd610 100644 --- a/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/impl/YyOrderServiceImpl.java +++ b/order-management-order/src/main/java/com/dxhy/order/consumer/modules/bespoke/service/impl/YyOrderServiceImpl.java @@ -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 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 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 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 orderOriginExtendInfos, FileModel fileModel) { + + List 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 newTableList) { + + int count = ConfigureConstant.INT_0; + for (NewTable newTable : newTableList) { + List 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 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); diff --git a/order-management-order/src/main/resources/mybatis/mapper/SkOrderMapper.xml b/order-management-order/src/main/resources/mybatis/mapper/SkOrderMapper.xml index fd96bd2..f0adb60 100644 --- a/order-management-order/src/main/resources/mybatis/mapper/SkOrderMapper.xml +++ b/order-management-order/src/main/resources/mybatis/mapper/SkOrderMapper.xml @@ -33,4 +33,8 @@ from v_invoice_detail_fp where xsddm = #{xsddm} + + + update v_invoice_head_fp set fph = #{fph},biaoshi = #{biaoshi} where XSDDM = #{xsddm} + diff --git a/order-management-order/src/main/resources/mybatis/mapper/YyOrderInfoMapper.xml b/order-management-order/src/main/resources/mybatis/mapper/YyOrderInfoMapper.xml index 0eabb5f..e598641 100644 --- a/order-management-order/src/main/resources/mybatis/mapper/YyOrderInfoMapper.xml +++ b/order-management-order/src/main/resources/mybatis/mapper/YyOrderInfoMapper.xml @@ -182,4 +182,16 @@ #{id} + + + update yy_order_info set status = #{status} where cdlcode = #{cdlcode} + + + diff --git a/order-management-order/src/main/resources/mybatis/mapper/YyOrderMapper.xml b/order-management-order/src/main/resources/mybatis/mapper/YyOrderMapper.xml index 0d2417c..337f7f1 100644 --- a/order-management-order/src/main/resources/mybatis/mapper/YyOrderMapper.xml +++ b/order-management-order/src/main/resources/mybatis/mapper/YyOrderMapper.xml @@ -1,8 +1,8 @@ - - select cvouchtype, ccusregcode, ccusname, @@ -25,8 +25,10 @@ - + select id as yyItemId, + cinvname, cinvstd, ccomunitname, iquantity, @@ -37,4 +39,96 @@ from v_invoice_detail where cdlcode = #{xsddm} + + + insert into NewTable + + + cDLCode, + + + invoiceNo, + + + invoiceCode, + + + invoiceTime, + + + invoiceAmount, + + + invoicePhoto, + + + invoiceFilename, + + + bpmlsNo, + + + bpmNo, + + + operater, + + + operateDate, + + + shipper, + + + status, + + + + + #{cDLCode}, + + + #{invoiceNo}, + + + #{invoiceCode}, + + + #{invoiceTime}, + + + #{invoiceAmount}, + + + #{invoicePhoto}, + + + #{invoiceFilename}, + + + #{bpmlsNo}, + + + #{bpmNo}, + + + #{operater}, + + + #{operateDate}, + + + #{shipper}, + + + #{status}, + + + + +