diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInfoController.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInfoController.java index 1861724f..4fa4e30d 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInfoController.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInfoController.java @@ -500,4 +500,19 @@ public class OrderInfoController { } } + @ApiOperation(value = "批量订单明细合并", notes = "订单信息管理-批量订单明细合并") + @PostMapping("/batchMegerOrderItem") + @SysLog(operation = "批量订单明细合并", operationDesc = "订单明细合并", key = "批量订单明细合并") + public R batchMegerOrderItem(@RequestBody String param){ + log.info("批量订单明细合并",param); + List jsonObjects = JSONObject.parseArray(param).toJavaList(JSONObject.class); + + try { + return orderInfoService.batchMegerOrderItem(jsonObjects); + } catch (Exception e) { + log.error(e.getMessage()); + return R.error("系统异常"); + } + } + } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoService.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoService.java index 62eb77f7..96be588f 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoService.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoService.java @@ -1,6 +1,7 @@ package com.dxhy.order.consumer.modules.order.service; import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.dxhy.order.consumer.model.page.PageRequestVO; import com.dxhy.order.exception.OrderReceiveException; import com.dxhy.order.model.*; @@ -219,7 +220,9 @@ public interface OrderInfoService { R updateOrderItem(String orderInfoId,String entId,List itemList); @Transactional - R mergeOrderItem(String entId,String orderInfoId,List itemList); + R mergeOrderItem(String entId,String orderInfoId,List itemList) throws Exception; + + R batchMegerOrderItem(List jsonObjects); /** diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java index 671ffef0..4aed2d7e 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; import com.dxhy.base.constant.OrderSeparationException; import com.dxhy.base.constant.TaxSeparateConfig; import com.dxhy.base.utils.PriceTaxSeparationUtilNew; @@ -1855,15 +1856,20 @@ public class OrderInfoServiceImpl implements OrderInfoService { } @Override - public R mergeOrderItem(String entId, String orderInfoId,List itemList){ + public R mergeOrderItem(String entId, String orderInfoId,List itemList) throws Exception{ List orderItemInfos = orderItemInfoMapper.selectAllByOrderId(Arrays.asList(orderInfoId), null); if(ObjectUtil.isNull(orderItemInfos)){ return R.error("根据订单号未查询到明细行信息"); } - List collect = orderItemInfos.stream().filter(t -> itemList.contains(t.getId()) && StringUtils.isNotBlank(t.getSpbm())).collect(Collectors.toList()); - if(ObjectUtil.isNull(orderItemInfos)){ - return R.error("税收编码为空的不允许合并,请先更新税收编码"); + List collect = null; + if(itemList != null){ + collect = orderItemInfos.stream().filter(t -> itemList.contains(t.getId()) && StringUtils.isNotBlank(t.getSpbm())).collect(Collectors.toList()); + if(ObjectUtil.isNull(orderItemInfos)){ + return R.error("税收编码为空的不允许合并,请先更新税收编码"); + } + }else{ + collect = orderItemInfos; } Map> collect1 = collect.stream().collect(Collectors.groupingBy(t -> t.getFphxz() + t.getXmmc() + t.getXmdw() + t.getGgxh() + t.getSl() + t.getSpbm())); List orderItemInfoList = new ArrayList<>(); @@ -1928,6 +1934,26 @@ public class OrderInfoServiceImpl implements OrderInfoService { return R.ok(); } + @Override + public R batchMegerOrderItem(List jsonObjects){ + for (JSONObject t : jsonObjects) { + String orderInfoId = t.getString("orderInfoId"); + String entId = t.getString("entId"); + String ddh = t.getString("ddh"); + try { + R r = mergeOrderItem(orderInfoId, entId, null); + if(!ConfigureConstant.STRING_0000.equals(r.getCode())){ + return R.error("结算单号{}明细行合并失败",ddh); + } + } catch (Exception e) { + log.error("批量合并报错orderInfoId:{},entId:{},报错信息:{}",orderInfoId,entId,e.getMessage()); + return R.error("结算单号{}明细行合并失败",ddh); + } + } + + return R.ok(); + } + @Override @Transactional(readOnly = true) public Boolean checkInvoiceRemarksFlag(String xfnsrsbh, String ghfId) {