From bbd02af0e80d96a9c57f5b91207ef11d95478890 Mon Sep 17 00:00:00 2001 From: liufeilong Date: Fri, 24 Mar 2023 08:50:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8F=91=E7=A5=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=AE=9A=E5=88=B6=E5=8C=96=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/constant/OrderInfoContentEnum.java | 2 ++ .../dxhy/order/model/OrderProcessInfo.java | 16 ++++++++++++ .../dxhy/order/model/page/OrderListQuery.java | 4 +++ .../dxhy/order/utils/PageBeanConvertUtil.java | 19 ++++++++++++++ .../GenerateReadyOpenOrderServiceImpl.java | 4 +++ .../service/impl/OrderCommonServiceImpl.java | 12 +++++++++ .../service/impl/OrderProcessServiceImpl.java | 12 +++++++++ .../impl/OrderRollbackServiceImpl.java | 26 +++++++++++++++---- .../mybatis/mapper/OrderProcessInfoMapper.xml | 21 +++++++++++++++ 9 files changed, 111 insertions(+), 5 deletions(-) diff --git a/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoContentEnum.java b/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoContentEnum.java index 5d2266fa..8ef09d42 100644 --- a/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoContentEnum.java +++ b/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoContentEnum.java @@ -1600,6 +1600,8 @@ public enum OrderInfoContentEnum { ORDER_ROLLBACK_DATA_EXCEPTION_ERROR("9524", "数据有误,异常订单回退失败"), + ORDER_ROLLBACK_DATA_EXCEPTIONNOTBACK_ERROR("95241", "异常订单不允许回退"), + ORDER_ROLLBACK_DATA_CF_ERROR("9525", "数据有误,拆分后订单回退失败"), ORDER_ROLLBACK_StATUS_ERROR("9523", "原始状态的订单,不支持回退"), diff --git a/order-management-common/src/main/java/com/dxhy/order/model/OrderProcessInfo.java b/order-management-common/src/main/java/com/dxhy/order/model/OrderProcessInfo.java index 1c455610..5a441b55 100644 --- a/order-management-common/src/main/java/com/dxhy/order/model/OrderProcessInfo.java +++ b/order-management-common/src/main/java/com/dxhy/order/model/OrderProcessInfo.java @@ -225,6 +225,22 @@ public class OrderProcessInfo implements Serializable { * 矿别 */ private String kb; + /** + * 清单标志 + */ + private String qdBz; + /** + * 打印状态 + */ + private String dyzt; + /** + * 打印状态描述 + */ + private String dyztms; + /** + * 开票类型 + */ + private String kplx; diff --git a/order-management-common/src/main/java/com/dxhy/order/model/page/OrderListQuery.java b/order-management-common/src/main/java/com/dxhy/order/model/page/OrderListQuery.java index c26948b8..8797ab64 100644 --- a/order-management-common/src/main/java/com/dxhy/order/model/page/OrderListQuery.java +++ b/order-management-common/src/main/java/com/dxhy/order/model/page/OrderListQuery.java @@ -291,5 +291,9 @@ public class OrderListQuery { * 矿别 */ private String kb; + /** + * 打印状态 + */ + private String dyzt; } diff --git a/order-management-common/src/main/java/com/dxhy/order/utils/PageBeanConvertUtil.java b/order-management-common/src/main/java/com/dxhy/order/utils/PageBeanConvertUtil.java index 5c387e47..f7fb51d3 100644 --- a/order-management-common/src/main/java/com/dxhy/order/utils/PageBeanConvertUtil.java +++ b/order-management-common/src/main/java/com/dxhy/order/utils/PageBeanConvertUtil.java @@ -1,6 +1,7 @@ package com.dxhy.order.utils; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.dxhy.order.constant.ConfigureConstant; @@ -210,6 +211,24 @@ public class PageBeanConvertUtil { String endTime = DateUtil.format(parse, "yyyy-MM-dd"); resultMap.put("pzgzrqEnd", endTime); } + resultMap.put("dyzt", orderListQuery.getDyzt()); + /** + * 清单标志,前端传0或1 + * 0:不带清单 + * 1:带清单 + * 如果为空不进行筛选 + * 对应数据库操作, + * 如果为0,查询清单标志为0,2的 + * 如果为1,查询清单标志为1,3的 + */ + if (StringUtils.isNotBlank(orderListQuery.getQdbz())) { + String[] qdbzs = JsonUtils.getInstance().fromJson(orderListQuery.getQdbz(), String[].class); + resultMap.put("qdbz", qdbzs); + if(ArrayUtil.contains(qdbzs,OrderInfoEnum.QDBZ_CODE_1.getKey()) || + ArrayUtil.contains(qdbzs,OrderInfoEnum.QDBZ_CODE_3.getKey())){ + resultMap.put("kplx",OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_0.getKey()); + } + } return resultMap; } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/GenerateReadyOpenOrderServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/GenerateReadyOpenOrderServiceImpl.java index 50fe6558..37802a7d 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/GenerateReadyOpenOrderServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/GenerateReadyOpenOrderServiceImpl.java @@ -624,8 +624,12 @@ public class GenerateReadyOpenOrderServiceImpl implements GenerateReadyOpenOrder orderProcessInfo.setDdly(commonOrderInfo.getProcessInfo().getDdly()); orderProcessInfo.setDdzt(commonOrderInfo.getProcessInfo().getDdzt()); orderProcessInfo.setBzdh(commonOrderInfo.getProcessInfo().getBzdh()); + orderProcessInfo.setXtly("FPPTEXCEL"); + orderProcessInfo.setBhzt(ConfigureConstant.STRING_0); orderProcessInfo.setYzfp(commonOrderInfo.getProcessInfo().getYzfp()); orderProcessInfo.setKb(orderItemInfos.get(0).getKb()); + orderProcessInfo.setOriginOrderId(orderInfo.getId()); + orderProcessInfo.setOriginDdh(orderInfo.getDdh()); //原始订单到最终订单的关系 diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderCommonServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderCommonServiceImpl.java index cac17939..6391fd65 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderCommonServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderCommonServiceImpl.java @@ -1246,6 +1246,18 @@ public class OrderCommonServiceImpl implements OrderCommonService { orderProcessInfo.setCreateTime(date); orderProcessInfo.setUpdateTime(date); orderProcessInfo.setDdzt(OrderInfoEnum.ORDER_STATUS_0.getKey()); + //山能拆分后复制原订单的定制化字段 + orderProcessInfo.setBzdh(processInfo.getBzdh()); + orderProcessInfo.setXtly(processInfo.getXtly()); + orderProcessInfo.setGsdm(processInfo.getGsdm()); + orderProcessInfo.setBhzt(processInfo.getBhzt()); + orderProcessInfo.setYgxm(processInfo.getYgxm()); + orderProcessInfo.setKppzh(processInfo.getKppzh()); + orderProcessInfo.setPzgzrq(processInfo.getPzgzrq()); + orderProcessInfo.setYzfp(ConfigureConstant.STRING_1); + orderProcessInfo.setOriginDdh(processInfo.getDdh()); + orderProcessInfo.setOriginOrderId(processInfo.getOrderInfoId()); + orderProcessInfo.setKb(processInfo.getKb()); return orderProcessInfo; } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderProcessServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderProcessServiceImpl.java index 0873f780..463e86ee 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderProcessServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderProcessServiceImpl.java @@ -1,6 +1,7 @@ package com.dxhy.order.consumer.modules.order.service.impl; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.dxhy.order.constant.ConfigureConstant; import com.dxhy.order.constant.OrderInfoEnum; @@ -25,6 +26,7 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; /** * 订单处理业务实现 @@ -68,6 +70,16 @@ public class OrderProcessServiceImpl implements OrderProcessService { log.debug("订单查询,当前页:{},页面条数:{}", currPage, pageSize); PageHelper.startPage(currPage, pageSize); List list = orderProcessInfoMapper.queryOrderInfo(paramMap, shList, entList); + list.forEach(op -> { + //如果是红票,将清单标志改为0,(红票没有清单) + if (OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_1.getKey().equals(op.getKplx())) { + op.setQdBz("0"); + } + //如果打印状态描述为null,赋值为空字符串 + if (Objects.isNull(op.getDyztms())) { + op.setDyztms(""); + } + }); PageInfo pageInfo = new PageInfo<>(list); return new PageUtils(pageInfo.getList(), (int) pageInfo.getTotal(), pageInfo.getPageSize(), pageInfo.getPageNum()); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderRollbackServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderRollbackServiceImpl.java index 4e95a206..41a327a7 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderRollbackServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderRollbackServiceImpl.java @@ -9,6 +9,7 @@ import com.dxhy.order.model.OrderOriginExtendInfo; import com.dxhy.order.model.OrderProcessInfo; import com.dxhy.order.model.OrderProcessInfoExt; import com.dxhy.order.model.R; +import com.dxhy.order.model.newsk.invoiceapply.Consignee; import com.dxhy.order.utils.CommonUtils; import com.dxhy.order.utils.JsonUtils; import com.dxhy.base.constant.OrderMergeErrorMessageEnum; @@ -124,7 +125,7 @@ public class OrderRollbackServiceImpl implements OrderRollbackService { // 异常回退 if (OrderInfoEnum.ORDER_STATUS_6.getKey().equals(processInfo.getDdzt()) || OrderInfoEnum.ORDER_STATUS_8.getKey().equals(processInfo.getDdzt())) { - // 修改处理表状态为待开具ORDER_STATUS_3 + /*// 修改处理表状态为待开具ORDER_STATUS_3 log.debug("{}要回退异常订单的orderId:{}", LOGGER_MSG, processInfo.getOrderInfoId()); OrderProcessInfo orderProcessInfo = new OrderProcessInfo(); orderProcessInfo.setId(processInfo.getId()); @@ -133,14 +134,23 @@ public class OrderRollbackServiceImpl implements OrderRollbackService { if (updateResult <= 0) { log.error("{},异常订单回退失败,订单id:{}", LOGGER_MSG, processInfo.getOrderInfoId()); throw new OrderReceiveException(OrderInfoContentEnum.ORDER_ROLLBACK_DATA_EXCEPTION_ERROR); - } + }*/ + throw new OrderReceiveException(OrderInfoContentEnum.ORDER_ROLLBACK_DATA_EXCEPTIONNOTBACK_ERROR); // 拆分后回退 } else if (OrderInfoEnum.ORDER_TYPE_0.getKey().equals(processInfo.getDdlx())) { if (OrderInfoEnum.ORDER_STATUS_0.getKey().equals(processInfo.getDdzt()) || OrderInfoEnum.ORDER_STATUS_1.getKey().equals(processInfo.getDdzt()) || OrderInfoEnum.ORDER_STATUS_2.getKey().equals(processInfo.getDdzt()) || OrderInfoEnum.ORDER_STATUS_3.getKey().equals(processInfo.getDdzt())) { - log.error("{},原始订单不需要回退,订单id:{}", LOGGER_MSG, processInfo.getOrderInfoId()); - - throw new OrderReceiveException(OrderInfoContentEnum.ORDER_ROLLBACK_StATUS_ERROR); + /*log.error("{},原始订单不需要回退,订单id:{}", LOGGER_MSG, processInfo.getOrderInfoId()); + + throw new OrderReceiveException(OrderInfoContentEnum.ORDER_ROLLBACK_StATUS_ERROR);*/ + OrderProcessInfo orderProcessInfo = new OrderProcessInfo(); + orderProcessInfo.setId(processInfo.getId()); + orderProcessInfo.setYzfp(ConfigureConstant.STRING_0); + int updateResult = orderProcessInfoMapper.updateOrderProcessInfoByProcessId(orderProcessInfo, shList); + if (updateResult <= 0) { + log.error("{},原始订单回退失败,订单id:{}", LOGGER_MSG, processInfo.getOrderInfoId()); + throw new OrderReceiveException(OrderInfoContentEnum.ORDER_ROLLBACK_DATA_EXCEPTION_ERROR); + } } } else { @@ -178,6 +188,7 @@ public class OrderRollbackServiceImpl implements OrderRollbackService { //如果根据当前id查询数据后存在数据,说明该数据是合并后数据,把当前是数据存放在无效状态数据中,把其他数据存放在有效状态数据中 if (orderProcessInfoExts1 != null && orderProcessInfoExts1.size() > 0) { if (orderProcessInfoExts1.size() > 1) { + //山能没有订单合并,不会走此分支 validStatusData.add(processInfo.getId()); originValidStatusData.add(processInfo.getOrderInfoId()); for (OrderProcessInfoExt orderProcessInfoExt : orderProcessInfoExts1) { @@ -187,6 +198,7 @@ public class OrderRollbackServiceImpl implements OrderRollbackService { //如果是合并后订单还原,则将订单处理记录扩展表的数据置为无效状态 selectExtByParentProcessId.addAll(orderProcessInfoExts1); } else { + //山能只会拆分一次 //判断是否为拆分后数据,拆分后数据,需要获取父级数据,然后递归获取有效无效状态 List parentOrderProcessInfoExts = orderProcessInfoExtMapper.selectExtByParentProcessId(orderProcessInfoExts1.get(0).getParentOrderProcessId(), shList); //如果根据父id查询数据后存在数据,说明该数据是拆分后数据,把父级数据改为有效状态, @@ -200,6 +212,10 @@ public class OrderRollbackServiceImpl implements OrderRollbackService { } } +// validStatusData:拆分后的订单,order_process_info表的id +// statusData:原订单,order_process_info表的id +// originValidStatusData:拆分后的订单,order_process_info表的order_info_id +// originStatusData:原订单,order_process_info表的order_info_id updateByTranaction(selectExtByParentProcessId, validStatusData, statusData, originValidStatusData, originStatusData, shList); } diff --git a/order-management-consumer/src/main/resources/mybatis/mapper/OrderProcessInfoMapper.xml b/order-management-consumer/src/main/resources/mybatis/mapper/OrderProcessInfoMapper.xml index 907aebda..acffbb35 100644 --- a/order-management-consumer/src/main/resources/mybatis/mapper/OrderProcessInfoMapper.xml +++ b/order-management-consumer/src/main/resources/mybatis/mapper/OrderProcessInfoMapper.xml @@ -53,6 +53,10 @@ + + + + @@ -359,6 +363,10 @@ oii.skcwdm, oii.skcwms, oii.push_jos_status, + oii.qd_bz, + oii.dyzt, + oii.dyztms, + oii.kplx, op.id, op.order_info_id,op.ddqqpch, op.fpqqlsh, op.ddh, op.tqm, op.kphjje, op.hjbhsje, op.kpse, op.fpzl_dm, op.ghf_mc, op.ghf_nsrsbh, op.kpxm, op.ddcjsj, op.ddlx, op.ddzt, op.ddly, op.ywlx,op.ywlx_id,op.kpfs, op.sbyy, op.order_status, op.create_time, @@ -614,6 +622,19 @@ and #{map.pzgzrqEnd} >= op.pzgzrq + + and oii.dyzt = #{map.dyzt,jdbcType=VARCHAR} + + + and oii.qd_bz in + + #{item,jdbcType=VARCHAR} + + + + and oii.kplx = #{map.kplx,jdbcType=VARCHAR} +