From fc91916c4be66374da8805d0858ffb90abdf9e60 Mon Sep 17 00:00:00 2001 From: kane Date: Wed, 29 Nov 2023 17:03:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E6=9F=A5=E8=AF=A2sap=E6=8A=A5=E8=B4=A6?= =?UTF-8?q?=E5=8D=95=E5=8F=B7=E7=8A=B6=E6=80=81=E7=BB=93=E6=9E=9C=E8=A7=A3?= =?UTF-8?q?=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrderInfoServiceImpl.java | 578 +++++++++--------- 1 file changed, 297 insertions(+), 281 deletions(-) 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 f9938fa5..acfed474 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 @@ -68,8 +68,13 @@ import com.dxhy.order.model.qdsk.taxpayerinfo.Qdjcxx; import com.dxhy.order.model.queue.CommonTsMqData; import com.dxhy.order.model.queue.FpTsMqData; import com.dxhy.order.utils.*; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.codehaus.jackson.JsonNode; +import org.codehaus.jackson.map.ObjectMapper; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -201,7 +206,6 @@ public class OrderInfoServiceImpl implements OrderInfoService { private RabbitMqSendMessageService rabbitMqSendMessageService; - DecimalFormat format = new DecimalFormat("#.###"); @Override @@ -405,14 +409,14 @@ public class OrderInfoServiceImpl implements OrderInfoService { oderDetailInfo.setGhfId(orderInfo.getGhfId()); BuyerEntity buyerEntity = null; if (StrUtil.isNotBlank(orderInfo.getGhfId())) { - buyerEntity = buyerService.queryBuyerInfoByxhfNsrsbhAndBuyerCode(orderInfo.getXhfNsrsbh(), orderInfo.getGhfId(),orderProcessInfo.getEntId()); + buyerEntity = buyerService.queryBuyerInfoByxhfNsrsbhAndBuyerCode(orderInfo.getXhfNsrsbh(), orderInfo.getGhfId(), orderProcessInfo.getEntId()); if (ObjectUtil.isNull(buyerEntity)) { - buyerEntity = buyerService.queryBuyerInfoByxhfNsrsbhAndBuyerCode(ConfigureConstant.STRING_1_, orderInfo.getGhfId(),null); + buyerEntity = buyerService.queryBuyerInfoByxhfNsrsbhAndBuyerCode(ConfigureConstant.STRING_1_, orderInfo.getGhfId(), null); } } if (ObjectUtil.isNotNull(buyerEntity) && ConfigureConstant.STRING_0.equals(buyerEntity.getStatus())) { oderDetailInfo.setGhfStatus(ConfigureConstant.STRING_0); - }else { + } else { oderDetailInfo.setGhfStatus(ConfigureConstant.STRING_1); } @@ -444,9 +448,9 @@ public class OrderInfoServiceImpl implements OrderInfoService { oderDetailInfo.setJym(orderInvoiceInfo.getJym()); oderDetailInfo.setFwm(orderInvoiceInfo.getFwm()); oderDetailInfo.setEwm(orderInvoiceInfo.getEwm()); - if(!CommonUtils.judgeIsQdfp("", orderInvoiceInfo.getFpzlDm()) + if (!CommonUtils.judgeIsQdfp("", orderInvoiceInfo.getFpzlDm()) && StringUtils.isBlank(orderInvoiceInfo.getEwm()) - && OrderInfoEnum.INVOICE_STATUS_2.getKey().equals(orderInvoiceInfo.getKpzt())){ + && OrderInfoEnum.INVOICE_STATUS_2.getKey().equals(orderInvoiceInfo.getKpzt())) { //非全电发票,开票成功的数据如果二维码为空时本地生成二维码 try { String ewm = EwmUtil.generateTwoDimCode(orderInvoiceInfo.getFpdm(), @@ -459,7 +463,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { "},发票号码{" + orderInvoiceInfo.getFphm() + "},生成二维码异常:" + e.getMessage()); } - }else { + } else { oderDetailInfo.setLocalPrintEwm(orderInvoiceInfo.getEwm()); } oderDetailInfo.setKprq(DateUtil.format(orderInvoiceInfo.getKprq(), "yyyy-MM-dd HH:mm:ss")); @@ -472,7 +476,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { oderDetailInfo.setZfbz(orderInvoiceInfo.getZfBz()); oderDetailInfo.setYfpFpzl(orderInfo.getYfpFpzl()); oderDetailInfo.setYfpKprq(Objects.nonNull(orderInfo.getYfpKprq()) ? - DateUtil.format(orderInfo.getYfpKprq(),ConfigureConstant.DATE_FORMAT_DATE) : ""); + DateUtil.format(orderInfo.getYfpKprq(), ConfigureConstant.DATE_FORMAT_DATE) : ""); oderDetailInfo.setChyy(orderInfo.getChyy()); oderDetailInfo.setBz(orderInfo.getBz()); oderDetailInfo.setYfpDm(orderInfo.getYfpDm()); @@ -523,15 +527,15 @@ public class OrderInfoServiceImpl implements OrderInfoService { //如果为推送京东成功数据,不允许进行操作 OrderInvoiceInfo orderInvoiceInfo = orderInvoiceInfoService.selectOrderInvoiceInfoByFpqqlsh(orderInfo.getFpqqlsh(), NsrsbhUtils.transShListByNsrsbh(orderInfo.getXhfNsrsbh())); - if(ObjectUtil.isNotNull(orderInvoiceInfo)){ - if(OrderInfoEnum.PUSH_JOS_STATUS_1.getKey().equals(orderInvoiceInfo.getPushJosStatus())){ + if (ObjectUtil.isNotNull(orderInvoiceInfo)) { + if (OrderInfoEnum.PUSH_JOS_STATUS_1.getKey().equals(orderInvoiceInfo.getPushJosStatus())) { log.error("{}推送京东成功数据,不允许进行操作", LOGGER_MSG); throw new OrderReceiveException(OrderInfoContentEnum.RECEIVE_FAILD.getKey(), "推送京东成功数据,无法编辑!"); } } //编辑保存后,如果不存在1%或3%税率,则税率开具理由置为空 - if(!taxSpecialPolicyUtil.isContain3PercentTax(orderInfo,commonOrderInfo.getOrderItemInfo(),terminalCode)){ + if (!taxSpecialPolicyUtil.isContain3PercentTax(orderInfo, commonOrderInfo.getOrderItemInfo(), terminalCode)) { orderInfo.setSlkjly(""); } coverOrderInfo(oldOrderInfo, orderInfo); @@ -568,7 +572,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { oldOrderInfo.setKpxm(orderItemInfoList.get(0).getXmmc()); //如果为特殊冲红,需要把原发票种类,原发票日期,冲红原因清空 - if(OrderInfoEnum.TSCHBZ_1.getKey().equals(oldOrderInfo.getTschbz())){ + if (OrderInfoEnum.TSCHBZ_1.getKey().equals(oldOrderInfo.getTschbz())) { oldOrderInfo.setChyy(""); oldOrderInfo.setYfpFpzl(""); oldOrderInfo.setYfpKprq(null); @@ -593,7 +597,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { */ OrderInvoiceInfo oldOrderInvoiceInfo = orderInvoiceInfoService.selectOrderInvoiceInfoByFpqqlsh(oldOrderInfo.getFpqqlsh(), shList); log.info("{}根据发票请求流水号查询,流水号:{}", LOGGER_MSG, oldOrderInfo.getFpqqlsh()); - if(StringUtils.isNotBlank(oldOrderInfo.getHzxxbbh())){ + if (StringUtils.isNotBlank(oldOrderInfo.getHzxxbbh())) { oldOrderInvoiceInfo.setHzxxbbh(oldOrderInfo.getHzxxbbh()); } @@ -731,7 +735,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { } //判断小数点后位数,默认为8位,如果为全电,为15位 int afterPointLength = ConfigureConstant.INT_8; - if(CommonUtils.judgeIsQdfp("",orderInfo.getFpzlDm())){ + if (CommonUtils.judgeIsQdfp("", orderInfo.getFpzlDm())) { afterPointLength = ConfigureConstant.INT_13; } for (OrderItemInfo orderItemInfo : orderItemInfos) { @@ -841,7 +845,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { if (StringUtils.isNotBlank(orderInfo.getYfpHm())) { dbOrderInfo.setYfpHm(orderInfo.getYfpHm()); } - if(StringUtils.isNotBlank(orderInfo.getHzxxbbh())){ + if (StringUtils.isNotBlank(orderInfo.getHzxxbbh())) { dbOrderInfo.setHzxxbbh(orderInfo.getHzxxbbh()); } dbOrderInfo.setChyy(orderInfo.getChyy()); @@ -1026,7 +1030,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { */ private void formatCommonOrder(OderDetailInfo oderDetailInfo) { - PageDataDealUtil.dealOrderItemInfo(oderDetailInfo.getOrderItemInfo(),oderDetailInfo.getFpzlDm()); + PageDataDealUtil.dealOrderItemInfo(oderDetailInfo.getOrderItemInfo(), oderDetailInfo.getFpzlDm()); if (StringUtils.isNotBlank(oderDetailInfo.getKphjje())) { oderDetailInfo.setKphjje(DecimalCalculateUtil.decimalFormatToString(oderDetailInfo.getKphjje(), ConfigureConstant.INT_2)); @@ -1110,17 +1114,17 @@ public class OrderInfoServiceImpl implements OrderInfoService { commonOrderInfo.setProcessInfo(orderProcessInfo); commonOrderInfo.setOrderItemInfo(orderItemInfoList); - if(ObjectUtil.isNotNull(orderInfo) && OrderInfoEnum.ORDER_INVOICE_TYPE_12.getKey().equals(orderInfo.getFpzlDm())){ + if (ObjectUtil.isNotNull(orderInfo) && OrderInfoEnum.ORDER_INVOICE_TYPE_12.getKey().equals(orderInfo.getFpzlDm())) { //查询机动车信息 OrderInfoJdc orderInfoJdc = orderInfoJdcService.queryOrderInfoJdcByFpqqlsh(orderInfo.getFpqqlsh(), shList); commonOrderInfo.setOrderInfoJdc(orderInfoJdc); } - if(ObjectUtil.isNotNull(orderInfo) && OrderInfoEnum.ORDER_INVOICE_TYPE_42.getKey().equals(orderInfo.getFpzlDm())){ + if (ObjectUtil.isNotNull(orderInfo) && OrderInfoEnum.ORDER_INVOICE_TYPE_42.getKey().equals(orderInfo.getFpzlDm())) { //查询二手车信息 OrderInfoEsc orderInfoEsc = orderInfoEscService.queryOrderInfoEscByFpqqlsh(orderInfo.getFpqqlsh(), shList); commonOrderInfo.setOrderInfoEsc(orderInfoEsc); } - if(ObjectUtil.isNotNull(orderInfo) && (OrderInfoEnum.ORDER_INVOICE_TYPE_01.getKey().equals(orderInfo.getFpzlDm()) || OrderInfoEnum.ORDER_INVOICE_TYPE_02.getKey().equals(orderInfo.getFpzlDm()))){ + if (ObjectUtil.isNotNull(orderInfo) && (OrderInfoEnum.ORDER_INVOICE_TYPE_01.getKey().equals(orderInfo.getFpzlDm()) || OrderInfoEnum.ORDER_INVOICE_TYPE_02.getKey().equals(orderInfo.getFpzlDm()))) { //查询全电发票订单信息 OrderInfoQd orderInfoQd = orderInfoQdService.queryOrderInfoQdByFpqqlsh(orderInfo.getFpqqlsh(), shList); commonOrderInfo.setOrderInfoQd(orderInfoQd); @@ -1158,7 +1162,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { } //如果发票种类代码不为空,用前端的传值补全 - if(StringUtils.isNotBlank(fpzlDm)){ + if (StringUtils.isNotBlank(fpzlDm)) { querySpecialInvoiceReversal.setFpzlDm(fpzlDm); } @@ -1173,7 +1177,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { // 根据原发票代码发票号码 判断特殊冲红标志 默认非特殊冲红 orderInfo.setTschbz(OrderInfoEnum.TSCHBZ_0.getKey()); //纸专/电专开红票时,页面/接口开红票时,原发票类型、原发票开票日期、冲红原因传税控应均为空 - if(OrderInfoEnum.ORDER_INVOICE_TYPE_0.getKey().equals(orderInfo.getFpzlDm()) || OrderInfoEnum.ORDER_INVOICE_TYPE_52.getKey().equals(orderInfo.getFpzlDm()) ){ + if (OrderInfoEnum.ORDER_INVOICE_TYPE_0.getKey().equals(orderInfo.getFpzlDm()) || OrderInfoEnum.ORDER_INVOICE_TYPE_52.getKey().equals(orderInfo.getFpzlDm())) { orderInfo.setYfpFpzl(""); orderInfo.setYfpKprq(null); orderInfo.setChyy(""); @@ -1255,8 +1259,8 @@ public class OrderInfoServiceImpl implements OrderInfoService { } @Override - public int updateOrderBuyerInfo(OrderInfo orderInfo, List shList){ - return orderMapper.updateOrderBuyerInfo(orderInfo,shList); + public int updateOrderBuyerInfo(OrderInfo orderInfo, List shList) { + return orderMapper.updateOrderBuyerInfo(orderInfo, shList); } @Override @@ -1530,27 +1534,27 @@ public class OrderInfoServiceImpl implements OrderInfoService { public R openRedInvoice(CommonOrderInfo commonOrderInfo, String uid) throws OrderSeparationException { R vo = new R(); //校验填写的报账单号是不是负数订单 - log.info("{}校验填写的报账单号是不是负数订单",LOGGER_MSG); + log.info("{}校验填写的报账单号是不是负数订单", LOGGER_MSG); OrderProcessInfo op = null; - if(StrUtil.isNotBlank(commonOrderInfo.getOrderInfo().getBzdh())){ + if (StrUtil.isNotBlank(commonOrderInfo.getOrderInfo().getBzdh())) { Map map = new HashMap(); - map.put("bzdh",commonOrderInfo.getOrderInfo().getBzdh().trim()); - map.put("orderStatus",ConfigureConstant.STRING_0); - if(StringUtils.isNotBlank(commonOrderInfo.getOrderInfo().getDdh())){ - map.put("ddh",commonOrderInfo.getOrderInfo().getDdh().trim()); + map.put("bzdh", commonOrderInfo.getOrderInfo().getBzdh().trim()); + map.put("orderStatus", ConfigureConstant.STRING_0); + if (StringUtils.isNotBlank(commonOrderInfo.getOrderInfo().getDdh())) { + map.put("ddh", commonOrderInfo.getOrderInfo().getDdh().trim()); } List orderProcessInfos = orderProcessInfoMapper.queryOrderInfo(map, null, null); - if(orderProcessInfos.size()!=1){ + if (orderProcessInfos.size() != 1) { return R.error("根据报账单号未查到到结算单或查询到多条结算单,请检查!"); - }else if(orderProcessInfos.size() == 1 && new BigDecimal(orderProcessInfos.get(0).getKphjje()).compareTo(BigDecimal.ZERO) == 1 ){ + } else if (orderProcessInfos.size() == 1 && new BigDecimal(orderProcessInfos.get(0).getKphjje()).compareTo(BigDecimal.ZERO) == 1) { return R.error("报账单号对应的结算单不是负数结算单,请检查!"); - }else { + } else { op = orderProcessInfos.get(0); } - if(!commonOrderInfo.getOrderInfo().getXhfNsrsbh().equals(op.getXhfNsrsbh())){ + if (!commonOrderInfo.getOrderInfo().getXhfNsrsbh().equals(op.getXhfNsrsbh())) { return R.error("报账单号对应的结算单销方税号与当前结算单不一致,请检查!"); } - if(!commonOrderInfo.getOrderInfo().getGhfNsrsbh().equals(op.getGhfNsrsbh())){ + if (!commonOrderInfo.getOrderInfo().getGhfNsrsbh().equals(op.getGhfNsrsbh())) { return R.error("报账单号对应的结算单购方税号与当前结算单不一致,请检查!"); } } @@ -1566,7 +1570,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { boolean isSlkjlyFlag = taxSpecialPolicyUtil.isSlkjlyFlag(commonOrderInfo, commonOrderInfo.getOrderInfo().getSlkjly(), terminalCode); //需要前端页面弹框选择税率开具理由 - if(isSlkjlyFlag){ + if (isSlkjlyFlag) { return R.error(OrderInfoContentEnum.SLKJLY_EMPTY_9900); } @@ -1580,18 +1584,18 @@ public class OrderInfoServiceImpl implements OrderInfoService { .put(OrderManagementConstant.MESSAGE, excuSingle.get(OrderManagementConstant.MESSAGE)); } //负数订单保存后,删除SAP传过来的结算单 - if(ObjectUtil.isNotNull(op)){ + if (ObjectUtil.isNotNull(op)) { log.info("{}订单保存后,根据填写的报账单号删除SAP传过来的结算单"); - if(ConfigureConstant.STRING_1.equals(op.getOrderStatus())){ + if (ConfigureConstant.STRING_1.equals(op.getOrderStatus())) { log.info("{}订单保存后,根据填写的报账单号删除SAP传过来的结算单,已经是删除状态"); - }else { + } else { OrderProcessInfo updateOp = new OrderProcessInfo(); updateOp.setId(op.getId()); updateOp.setOrderStatus(ConfigureConstant.STRING_1); int i = orderProcessInfoMapper.updateOrderProcessInfoByProcessId(updateOp, null); - if(i == 0){ + if (i == 0) { log.info("{}订单保存后,根据填写的报账单号删除SAP传过来的结算单失败"); - }else { + } else { log.info("{}订单保存后,根据填写的报账单号删除SAP传过来的结算单成功"); } } @@ -1630,7 +1634,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { List pageKySlRspList = new ArrayList<>(); //根据发票种类判断是否为全电票,如果为全电票需要调用接口获取可用税率列表 if (StringUtils.isNotBlank(pageKySlReq.getFpzlDm()) && OrderInfoEnum.ORDER_INVOICE_TYPE_01.getKey().equals(pageKySlReq.getFpzlDm()) || OrderInfoEnum.ORDER_INVOICE_TYPE_02.getKey().equals(pageKySlReq.getFpzlDm())) { - TaxEquipmentInfo taxEquipmentInfo = simsBackService.queryTaxEquipment(pageKySlReq.getNsrsbh(),""); + TaxEquipmentInfo taxEquipmentInfo = simsBackService.queryTaxEquipment(pageKySlReq.getNsrsbh(), ""); if (ObjectUtil.isNull(taxEquipmentInfo) || StringUtils.isBlank(taxEquipmentInfo.getSksbCode())) { log.warn("{}企业未配置税控设备,税号:{}", LOGGER_MSG, pageKySlReq.getNsrsbh()); throw new OrderReceiveException(OrderInfoContentEnum.COMMON_ERROR); @@ -1710,105 +1714,105 @@ public class OrderInfoServiceImpl implements OrderInfoService { String yfpHm = param.get("yfpHm"); String hzxxbbh = param.get("hzxxbbh"); //OrderInfo redOrderInfo = orderInfoService.selectOrderInfoByOrderId(orderInfoId, null); - if(StringUtils.isNotBlank(yfpDm) && StringUtils.isNotBlank(yfpHm)){ + if (StringUtils.isNotBlank(yfpDm) && StringUtils.isNotBlank(yfpHm)) { OrderInvoiceInfo orderInvoiceInfo = orderInvoiceInfoService.selectOrderInvoiceInfoByFpdmAndFphm(yfpDm, yfpHm, null); - if(ObjectUtil.isNull(orderInvoiceInfo)){ + if (ObjectUtil.isNull(orderInvoiceInfo)) { errorMsg.append("所填原蓝票代码、号码在系统中不存在,请检查;\n"); - }else { + } else { CommonOrderInfo commonOrderInfoN = orderInfoService.getCommonOrderInfoAll(orderInfoId, null); OrderInvoiceInfo orderInvoiceInfoY = orderInvoiceInfoService.selectOrderInvoiceInfoByFpdmAndFphm(yfpDm, yfpHm, null); - CommonOrderInfo commonOrderInfoY = orderInfoService.getCommonOrderInfoAll(orderInvoiceInfoY.getOrderInfoId(),null); - Map compareMap = compareOrderAndHzxxb(commonOrderInfoN,commonOrderInfoY); - if(!"0000".equals(compareMap.get("code").toString())){ - errorMsg.append(compareMap.get("msg").toString()+"\n"); + CommonOrderInfo commonOrderInfoY = orderInfoService.getCommonOrderInfoAll(orderInvoiceInfoY.getOrderInfoId(), null); + Map compareMap = compareOrderAndHzxxb(commonOrderInfoN, commonOrderInfoY); + if (!"0000".equals(compareMap.get("code").toString())) { + errorMsg.append(compareMap.get("msg").toString() + "\n"); } } - }else if(StringUtils.isNotBlank(hzxxbbh)){ + } else if (StringUtils.isNotBlank(hzxxbbh)) { SpecialInvoiceReversalEntity specialInvoiceReversalEntity = specialInvoiceReversalService.selectSpecialInvoiceReversalBySubmitCode(hzxxbbh); - if(ObjectUtil.isNull(specialInvoiceReversalEntity)){ + if (ObjectUtil.isNull(specialInvoiceReversalEntity)) { errorMsg.append("所填红字信息表编号在系统中不存在,请检查\n"); - }else { + } else { Set hzxxbbhSet = new HashSet<>(); hzxxbbhSet.add(hzxxbbh); CommonOrderInfo commonOrderInfoN = orderInfoService.getCommonOrderInfoAll(orderInfoId, null); List specialInvoiceReversalItems = specialInvoiceReversalItemMapper.selectItemListBySpecialInvoiceReversalId(specialInvoiceReversalEntity.getId()); CommonOrderInfo hzxxbCommonOrderInfo = BeanTransitionUtils.transitionCommonOrderInfoFromHzxxb(specialInvoiceReversalEntity, specialInvoiceReversalItems); - if(hzxxbQd(new ArrayList<>(hzxxbbhSet))){ + if (hzxxbQd(new ArrayList<>(hzxxbbhSet))) { //红字信息表带清单 Map compareMap = compareOrderAndHzxxbQd(commonOrderInfoN, hzxxbCommonOrderInfo); - if(!"0000".equals(compareMap.get("code").toString())){ - errorMsg.append(compareMap.get("msg").toString()+"\n"); + if (!"0000".equals(compareMap.get("code").toString())) { + errorMsg.append(compareMap.get("msg").toString() + "\n"); } - }else { + } else { Map compareMap = compareOrderAndHzxxb(commonOrderInfoN, hzxxbCommonOrderInfo); - if(!"0000".equals(compareMap.get("code").toString())){ - errorMsg.append(compareMap.get("msg").toString()+"\n"); + if (!"0000".equals(compareMap.get("code").toString())) { + errorMsg.append(compareMap.get("msg").toString() + "\n"); } } } } - if(errorMsg.length()>0){ + if (errorMsg.length() > 0) { return R.error(errorMsg.toString()); - }else { + } else { OrderInfo orderInfo = orderInfoService.selectOrderInfoByOrderId(orderInfoId, null); orderInfo.setYfpDm(yfpDm); orderInfo.setYfpHm(yfpHm); orderInfo.setHzxxbbh(hzxxbbh); - orderInfoService.updateOrderInfoByOrderId(orderInfo,null); + orderInfoService.updateOrderInfoByOrderId(orderInfo, null); return R.ok(); } } @Override - public void updateBillNumber(String bzdh,String orderInfoId,String fpqqlsh,String xhfNsrsbh,String force) throws Exception{ + public void updateBillNumber(String bzdh, String orderInfoId, String fpqqlsh, String xhfNsrsbh, String force) throws Exception { //通过报账单查询订单,如果存在则删除 - List orderProcessInfos = orderProcessInfoMapper.queryOrderProcessInfoByBzdh(bzdh,"", Arrays.asList(xhfNsrsbh)); + List orderProcessInfos = orderProcessInfoMapper.queryOrderProcessInfoByBzdh(bzdh, "", Arrays.asList(xhfNsrsbh)); OrderProcessInfo orderProcessInfo = null; List orderProcessInfoList = orderProcessInfos.stream().filter(t -> OrderInfoEnum.ORDER_STATUS_0.getKey().equals(t.getDdzt())).collect(Collectors.toList()); - if(orderProcessInfoList.size() > 1){ + if (orderProcessInfoList.size() > 1) { throw new OrderReceiveException(OrderInfoContentEnum.INVOICE_BZDH_MULTIPLE); } - if(orderProcessInfos.size() > 0){ + if (orderProcessInfos.size() > 0) { orderProcessInfo = orderProcessInfos.get(0); } - if(orderProcessInfo != null){ - if((!OrderInfoEnum.ORDER_STATUS_0.getKey().equals(orderProcessInfo.getDdzt())||ConfigureConstant.STRING_1.equals(orderProcessInfo.getYzfp())) - && OrderInfoEnum.ORDER_SOURCE_3.getKey().equals(orderProcessInfo.getDdly())){ + if (orderProcessInfo != null) { + if ((!OrderInfoEnum.ORDER_STATUS_0.getKey().equals(orderProcessInfo.getDdzt()) || ConfigureConstant.STRING_1.equals(orderProcessInfo.getYzfp())) + && OrderInfoEnum.ORDER_SOURCE_3.getKey().equals(orderProcessInfo.getDdly())) { throw new OrderReceiveException(OrderInfoContentEnum.INVOICE_BZDH_OPERATED); } - if((OrderInfoEnum.ORDER_STATUS_5.getKey().equals(orderProcessInfo.getDdzt()) || OrderInfoEnum.ORDER_STATUS_7.getKey().equals(orderProcessInfo.getDdzt())) - &&!OrderInfoEnum.ORDER_SOURCE_3.getKey().equals(orderProcessInfo.getDdly()) && ConfigureConstant.STRING_0.equals(force)){ + if ((OrderInfoEnum.ORDER_STATUS_5.getKey().equals(orderProcessInfo.getDdzt()) || OrderInfoEnum.ORDER_STATUS_7.getKey().equals(orderProcessInfo.getDdzt())) + && !OrderInfoEnum.ORDER_SOURCE_3.getKey().equals(orderProcessInfo.getDdly()) && ConfigureConstant.STRING_0.equals(force)) { throw new OrderReceiveException(OrderInfoContentEnum.INVOICE_BZDH_REPEAT_OPERATED); } - if(ConfigureConstant.STRING_0.equals(force)){ + if (ConfigureConstant.STRING_0.equals(force)) { OrderProcessInfo orderProcessInfo1 = new OrderProcessInfo(); orderProcessInfo1.setOrderStatus(OrderInfoEnum.ORDER_VALID_STATUS_1.getKey()); orderProcessInfo1.setOrderInfoId(orderProcessInfo.getOrderInfoId()); - orderProcessInfoMapper.updateOrderProcessInfoByFpqqlsh(orderProcessInfo1, Arrays.asList(xhfNsrsbh)); + orderProcessInfoMapper.updateOrderProcessInfoByFpqqlsh(orderProcessInfo1, Arrays.asList(xhfNsrsbh)); } } OrderProcessInfo orderProcessInfo2 = new OrderProcessInfo(); orderProcessInfo2.setBzdh(bzdh); orderProcessInfo2.setOrderInfoId(orderInfoId); - orderProcessInfo2.setXtly(orderProcessInfo != null && StringUtils.isNotBlank(orderProcessInfo.getXtly()) ? orderProcessInfo.getXtly() : orderProcessInfos.size() > 0 && StringUtils.isNotBlank(orderProcessInfos.get(0).getXtly())?orderProcessInfos.get(0).getXtly():""); - orderProcessInfo2.setGsdm(orderProcessInfo != null && StringUtils.isNotBlank(orderProcessInfo.getGsdm()) ? orderProcessInfo.getGsdm() : orderProcessInfos.size() > 0 && StringUtils.isNotBlank(orderProcessInfos.get(0).getGsdm())?orderProcessInfos.get(0).getGsdm():""); - orderProcessInfo2.setDdh(orderProcessInfo != null && StringUtils.isNotBlank(orderProcessInfo.getDdh()) ? orderProcessInfo.getDdh() : orderProcessInfos.size() > 0 && StringUtils.isNotBlank(orderProcessInfos.get(0).getDdh())?orderProcessInfos.get(0).getDdh():""); - int i = orderProcessInfoMapper.updateOrderProcessInfoByFpqqlsh(orderProcessInfo2, Arrays.asList(xhfNsrsbh)); - if(i > 0) { + orderProcessInfo2.setXtly(orderProcessInfo != null && StringUtils.isNotBlank(orderProcessInfo.getXtly()) ? orderProcessInfo.getXtly() : orderProcessInfos.size() > 0 && StringUtils.isNotBlank(orderProcessInfos.get(0).getXtly()) ? orderProcessInfos.get(0).getXtly() : ""); + orderProcessInfo2.setGsdm(orderProcessInfo != null && StringUtils.isNotBlank(orderProcessInfo.getGsdm()) ? orderProcessInfo.getGsdm() : orderProcessInfos.size() > 0 && StringUtils.isNotBlank(orderProcessInfos.get(0).getGsdm()) ? orderProcessInfos.get(0).getGsdm() : ""); + orderProcessInfo2.setDdh(orderProcessInfo != null && StringUtils.isNotBlank(orderProcessInfo.getDdh()) ? orderProcessInfo.getDdh() : orderProcessInfos.size() > 0 && StringUtils.isNotBlank(orderProcessInfos.get(0).getDdh()) ? orderProcessInfos.get(0).getDdh() : ""); + int i = orderProcessInfoMapper.updateOrderProcessInfoByFpqqlsh(orderProcessInfo2, Arrays.asList(xhfNsrsbh)); + if (i > 0) { Map map = new HashMap(); - map.put("ddqqlsh",fpqqlsh); - map.put("xhfNsrsbh",xhfNsrsbh); + map.put("ddqqlsh", fpqqlsh); + map.put("xhfNsrsbh", xhfNsrsbh); invoiceDataService.manualPushInvoice(Arrays.asList(map)); } } @Override - public R logicalDeleteByOrderInfoId(List pageRequestList){ + public R logicalDeleteByOrderInfoId(List pageRequestList) { StringBuilder errorMsgList = new StringBuilder(); for (int i = 0; i < pageRequestList.size(); i++) { @@ -1823,7 +1827,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { String orderInfoId = pageRequest.getOrderInfoId(); String issuedSign = pageRequest.getIssuedSign(); String fpqqlsh = pageRequest.getFpqqlsh(); - if(fpqqlsh.contains("-bh")){ + if (fpqqlsh.contains("-bh")) { continue; } List shList = Arrays.asList(pageRequest.getXhfNsrsbh()); @@ -1836,20 +1840,20 @@ public class OrderInfoServiceImpl implements OrderInfoService { orderProcessInfo.setFpqqlsh(fpqqlsh + "-bh" + i1); orderProcessInfo.setDdqqpch(fpqqlsh + "-bh" + i1); orderProcessInfo.setUpdateTime(new Date()); - if(ConfigureConstant.STRING_0.equals(issuedSign)){ + if (ConfigureConstant.STRING_0.equals(issuedSign)) { OrderInvoiceInfo orderInvoiceInfo = new OrderInvoiceInfo(); orderInvoiceInfo.setOrderInfoId(orderInfoId); - orderInvoiceInfo.setFpqqlsh(fpqqlsh + "-bh"+ i1); + orderInvoiceInfo.setFpqqlsh(fpqqlsh + "-bh" + i1); orderProcessInfo.setOrderStatus(ConfigureConstant.STRING_0); - orderInvoiceInfoMapper.updateOrderInvoiceInfoByOrderId(orderInvoiceInfo,null); + orderInvoiceInfoMapper.updateOrderInvoiceInfoByOrderId(orderInvoiceInfo, null); } int success = orderProcessService.updateOrderProcessInfoByProcessId(orderProcessInfo, shList); OrderInfo orderInfo = new OrderInfo(); orderInfo.setId(orderInfoId); - orderInfo.setFpqqlsh(fpqqlsh + "-bh"+ i1); + orderInfo.setFpqqlsh(fpqqlsh + "-bh" + i1); orderInfo.setUpdateTime(new Date()); - orderMapper.updateOrderInfoByOrderId(orderInfo,shList); + orderMapper.updateOrderInfoByOrderId(orderInfo, shList); //orderBatchRequestMapper.updateByPrimaryKeySelective(); if (success < 0) { errorMsgList.append(preStr).append("数据删除失败").append("\r\n"); @@ -1870,30 +1874,30 @@ public class OrderInfoServiceImpl implements OrderInfoService { } @Override - public R ratioConversion(List orderInfoIds,String ratio,String xhfNsrsbh,String originUnit,String newUnit){ + public R ratioConversion(List orderInfoIds, String ratio, String xhfNsrsbh, String originUnit, String newUnit) { //校验是否为同一税号 校验开票情况 //根据税号+ orderinfoid查询明细信息 List orderProcessInfos = orderProcessInfoMapper.selectByOrderIds(orderInfoIds, Arrays.asList(xhfNsrsbh)); List collect = orderProcessInfos.stream().filter(t -> "0,1,2,3".contains(t.getDdzt())).map(t -> t.getOrderInfoId()).collect(Collectors.toList()); - if(collect == null){ + if (collect == null) { return R.error("订单状态有误,请检查后重试"); } List orderItemInfos = orderItemInfoMapper.selectAllByOrderId(collect, Arrays.asList(xhfNsrsbh)); - if(orderItemInfos == null ||orderItemInfos.isEmpty()){ + if (orderItemInfos == null || orderItemInfos.isEmpty()) { return R.error("当前明细为空不允许进行单位换算"); } orderItemInfos = orderItemInfos.stream() - .filter(t->StringUtils.isNotBlank(t.getXmsl()) && originUnit.equals(t.getXmdw())) - .map(t->{ - t.setXmsl(new BigDecimal(t.getXmsl()).multiply(new BigDecimal(ratio)).setScale(8, RoundingMode.HALF_UP).toString()); - t.setXmdj(new BigDecimal(t.getXmje()).divide(new BigDecimal(t.getXmsl()),8,RoundingMode.HALF_UP).toString()); - t.setXmdw(newUnit); - return t; - } - ).collect(Collectors.toList()); + .filter(t -> StringUtils.isNotBlank(t.getXmsl()) && originUnit.equals(t.getXmdw())) + .map(t -> { + t.setXmsl(new BigDecimal(t.getXmsl()).multiply(new BigDecimal(ratio)).setScale(8, RoundingMode.HALF_UP).toString()); + t.setXmdj(new BigDecimal(t.getXmje()).divide(new BigDecimal(t.getXmsl()), 8, RoundingMode.HALF_UP).toString()); + t.setXmdw(newUnit); + return t; + } + ).collect(Collectors.toList()); //更新明细表 - if(orderItemInfos == null || orderItemInfos.isEmpty()){ + if (orderItemInfos == null || orderItemInfos.isEmpty()) { return R.error("未匹配到正确单位的数据或数量均为空"); } orderItemInfoMapper.updateOrderItemId(orderItemInfos); @@ -1901,7 +1905,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { } @Override - public R updateOrderItem(String orderInfoId,String entId,List itemList){ + public R updateOrderItem(String orderInfoId, String entId, List itemList) { //根据订单id查询明细数据 List orderItemInfos = orderItemInfoMapper.selectAllByOrderId(Arrays.asList(orderInfoId), null); List collect = orderItemInfos.stream().filter(t -> itemList.contains(t.getId())).collect(Collectors.toList()); @@ -1911,12 +1915,12 @@ public class OrderInfoServiceImpl implements OrderInfoService { // 如果公司物料库匹配失败,从集团物料库匹配 if (commodityCodeEntity == null) { // 如果匹配不到,则去集团物料库匹配 - commodityCodeEntity = commodityCodeMapper.queryCommodityCodeByZxbmAndXhfNsrsbhAndEntId(orderItemInfo.getZxbm(), ConfigureConstant.STRING_1_,null); + commodityCodeEntity = commodityCodeMapper.queryCommodityCodeByZxbmAndXhfNsrsbhAndEntId(orderItemInfo.getZxbm(), ConfigureConstant.STRING_1_, null); } - if(commodityCodeEntity != null){ + if (commodityCodeEntity != null) { completeCommodityMessageBySpid(orderItemInfo, commodityCodeEntity); - String znfm = ConfigureConstant.STRING_1_.equals(commodityCodeEntity.getXhfNsrsbh())?ConfigureConstant.STRING_1:ConfigureConstant.STRING_0; + String znfm = ConfigureConstant.STRING_1_.equals(commodityCodeEntity.getXhfNsrsbh()) ? ConfigureConstant.STRING_1 : ConfigureConstant.STRING_0; orderItemInfo.setZnfm(znfm); orderItemInfo.setXmsl(null); orderItemInfo.setXmdj(null); @@ -1924,19 +1928,19 @@ public class OrderInfoServiceImpl implements OrderInfoService { orderItemInfoList.add(orderItemInfo); } List collect1 = orderItemInfos.stream().filter(t -> StringUtils.isNotBlank(t.getSpbm())).map(t -> t.getSpbm()).collect(Collectors.toList()); - if(collect1.size()==orderItemInfos.size()){ + if (collect1.size() == orderItemInfos.size()) { Map map = new HashMap(2); - map.put("cpy","Y"); + map.put("cpy", "Y"); List taxClassCodeEntities = taxClassCodeMapper.selectTaxClassCodeList(collect1, map); - if(orderItemInfos.size()==taxClassCodeEntities.size()){ + if (orderItemInfos.size() == taxClassCodeEntities.size()) { //更新order_info 清单标志为4 OrderInfo orderInfo = new OrderInfo(); orderInfo.setId(orderInfoId); orderInfo.setQdBz("4"); - orderMapper.updateOrderInfoByOrderId(orderInfo,null); + orderMapper.updateOrderInfoByOrderId(orderInfo, null); } } - if(!orderItemInfoList.isEmpty()){ + if (!orderItemInfoList.isEmpty()) { orderItemInfoMapper.updateOrderItemId(orderItemInfoList); } return R.ok(); @@ -1950,15 +1954,15 @@ public class OrderInfoServiceImpl implements OrderInfoService { //更新订单物料智能赋码标识 List spbms = new ArrayList<>(); List orderItemInfo = param.getOrderItemInfo(); - if(orderItemInfo == null && orderItemInfo.isEmpty() ){ + if (orderItemInfo == null && orderItemInfo.isEmpty()) { return R.error("同步公司库必须勾选同步的明细"); } - List ending = orderItemInfo.stream().filter(t->StringUtils.isNotBlank(t.getSpbm())).map(t -> { + List ending = orderItemInfo.stream().filter(t -> StringUtils.isNotBlank(t.getSpbm())).map(t -> { spbms.add(t.getSpbm()); return t.getZxbm(); }).collect(Collectors.toList()); Map map = new HashMap(2); - map.put("hzx","N"); + map.put("hzx", "N"); List spbm = spbms.stream().distinct().collect(Collectors.toList()); ending = ending.stream().distinct().collect(Collectors.toList()); @@ -1966,21 +1970,21 @@ public class OrderInfoServiceImpl implements OrderInfoService { Map spbmMap = taxClassCodeEntities.stream().collect(Collectors.toMap(t -> t.getSpbm(), t -> t)); List commodityCodeEntities = null; - if(ending.size() > 0){ + if (ending.size() > 0) { commodityCodeEntities = commodityMapper.queryCommodityByencodings(ending, Arrays.asList(param.getEntId()), Arrays.asList(param.getXhfNsrsbh())); } Map collect = new HashMap<>(); - if(commodityCodeEntities != null && commodityCodeEntities.size() > 0){ + if (commodityCodeEntities != null && commodityCodeEntities.size() > 0) { collect = commodityCodeEntities.stream().collect(Collectors.toMap(t -> t.getZxbm(), t -> t)); } List items = new ArrayList<>(); - StringBuffer sb = new StringBuffer(); + StringBuffer sb = new StringBuffer(); Map repeatEnding = new HashMap(); for (OrderItemInfo itemInfo : orderItemInfo) { //存在同一物料编码 - itemInfo.setZxbm(StringUtils.isNotBlank(itemInfo.getZxbm())?itemInfo.getZxbm():baseService.getGenerateShotKey()); - if(repeatEnding.get(itemInfo.getZxbm()) != null){ + itemInfo.setZxbm(StringUtils.isNotBlank(itemInfo.getZxbm()) ? itemInfo.getZxbm() : baseService.getGenerateShotKey()); + if (repeatEnding.get(itemInfo.getZxbm()) != null) { OrderItemInfo item = new OrderItemInfo(); item.setId(itemInfo.getId()); item.setZnfm(ConfigureConstant.STRING_0); @@ -1995,50 +1999,50 @@ public class OrderInfoServiceImpl implements OrderInfoService { int i = 0; //公司不维护 CommodityCodeEntity commodityCodeOld = collect.get(itemInfo.getZxbm()); - if(commodityCodeOld == null){ + if (commodityCodeOld == null) { commodityCodeEntity.setId(baseService.getGenerateShotKey()); commodityCodeEntity.setCommodityId(commodityCodeEntity.getId()); commodityCodeEntity.setCreateTime(new Date()); - commodityCodeEntity.setUserId(userInfoService.getUser().getUserId() != null ? userInfoService.getUser().getUserId().toString():"sync"); + commodityCodeEntity.setUserId(userInfoService.getUser().getUserId() != null ? userInfoService.getUser().getUserId().toString() : "sync"); i = commodityMapper.insertCommodity(commodityCodeEntity); } //公司库已维护的不更新 - if(commodityCodeOld != null){ + if (commodityCodeOld != null) { //判断税编、规格型号、单位 commodityCodeEntity.setId(commodityCodeOld.getId()); commodityCodeEntity.setModifyTime(new Date()); - commodityCodeEntity.setModifyUserId(userInfoService.getUser().getUserId() != null ? userInfoService.getUser().getUserId().toString():"sync"); - i = commodityMapper.updateCommodity(commodityCodeEntity,Arrays.asList(param.getXhfNsrsbh())); + commodityCodeEntity.setModifyUserId(userInfoService.getUser().getUserId() != null ? userInfoService.getUser().getUserId().toString() : "sync"); + i = commodityMapper.updateCommodity(commodityCodeEntity, Arrays.asList(param.getXhfNsrsbh())); } - if(i > 0){ + if (i > 0) { OrderItemInfo item = new OrderItemInfo(); item.setId(itemInfo.getId()); item.setZnfm(ConfigureConstant.STRING_0); item.setZxbm(itemInfo.getZxbm()); items.add(item); } - repeatEnding.put(itemInfo.getZxbm(),commodityCodeEntity); + repeatEnding.put(itemInfo.getZxbm(), commodityCodeEntity); } catch (Exception e) { - log.error("更新公司库物料异常{}",e); + log.error("更新公司库物料异常{}", e); sb.append(itemInfo.getSphxh()).append(","); } } - if(items.size() > 0){ + if (items.size() > 0) { orderItemInfoMapper.updateOrderItemId(items); } - if(sb.length() == 0){ + if (sb.length() == 0) { return R.ok(); } String substring = sb.substring(0, sb.length() - 1) + "税编有误请检查"; return R.error(substring); } - private CommodityCodeEntity buildCommodity(OrderItemInfo itemInfo,OrderInfoVo orderInfoVo,Map spbm ) throws Exception{ + private CommodityCodeEntity buildCommodity(OrderItemInfo itemInfo, OrderInfoVo orderInfoVo, Map spbm) throws Exception { CommodityCodeEntity comm = new CommodityCodeEntity(); comm.setSortId(0L); comm.setXhfNsrsbh(orderInfoVo.getXhfNsrsbh()); TaxClassCodeEntity taxClassCodeEntity = spbm.get(itemInfo.getSpbm()); - if(taxClassCodeEntity == null){ + if (taxClassCodeEntity == null) { throw new Exception("商品税编有误"); } String spjc = taxClassCodeEntity.getSpjc(); @@ -2049,7 +2053,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { comm.setSpjm(""); String sl = itemInfo.getSl().replace("%", ""); comm.setSl(format.format(new BigDecimal(sl).divide(new BigDecimal("100"), 3, RoundingMode.HALF_UP)));//不需要转换% - comm.setGgxh(StringUtils.isNotBlank(itemInfo.getGgxh())?BaseServiceBeanTransitionUtils.ggxhTransition(itemInfo.getGgxh()):"");//切除40 + comm.setGgxh(StringUtils.isNotBlank(itemInfo.getGgxh()) ? BaseServiceBeanTransitionUtils.ggxhTransition(itemInfo.getGgxh()) : "");//切除40 comm.setXmdw(itemInfo.getXmdw()); comm.setHsbz(itemInfo.getHsbz()); comm.setYcbz(ConfigureConstant.STRING_0); @@ -2068,62 +2072,61 @@ public class OrderInfoServiceImpl implements OrderInfoService { comm.setCpy(taxClassCodeEntity.getCpy()); comm.setJdc(taxClassCodeEntity.getJdc()); comm.setEntId(orderInfoVo.getEntId()); - comm.setTswl(StringUtils.isBlank(itemInfo.getTswl())?ConfigureConstant.STRING_0:""); + comm.setTswl(StringUtils.isBlank(itemInfo.getTswl()) ? ConfigureConstant.STRING_0 : ""); return comm; } - @Override - public R mergeOrderItem(String entId, String orderInfoId,List itemList) throws Exception{ + public R mergeOrderItem(String entId, String orderInfoId, List itemList) throws Exception { List orderItemInfos = orderItemInfoMapper.selectAllByOrderId(Arrays.asList(orderInfoId), null); OrderInfo orderInfo = orderMapper.selectOrderInfoByOrderId(orderInfoId, null); - if(ObjectUtil.isNull(orderItemInfos)){ + if (ObjectUtil.isNull(orderItemInfos)) { return R.error("根据订单号未查询到明细行信息"); } - List collect ; + List collect; int itemCount = -1; - if(itemList != null){ + if (itemList != null) { itemCount = itemList.size(); collect = orderItemInfos.stream().filter(t -> itemList.contains(t.getId()) && StringUtils.isNotBlank(t.getSpbm()) && StringUtils.isNotBlank(t.getZxbm())).collect(Collectors.toList()); - }else{ + } else { itemCount = orderItemInfos.size(); collect = orderItemInfos.stream().filter(t -> StringUtils.isNotBlank(t.getSpbm()) && StringUtils.isNotBlank(t.getZxbm())).collect(Collectors.toList()); } //税编为空的不允许合并 - if(itemCount != collect.size()){ + if (itemCount != collect.size()) { return R.error("税收编码为空的不允许合并,请先更新税收编码"); } TaxEquipmentInfo taxEquipmentInfo = simsBackService.queryTaxEquipment(orderInfo.getNsrsbh(), entId); - if(taxEquipmentInfo == null ||StringUtils.isBlank(taxEquipmentInfo.getSksbCode())){ + if (taxEquipmentInfo == null || StringUtils.isBlank(taxEquipmentInfo.getSksbCode())) { return R.error("税控设备查询为空"); } orderInfo.setSksbCode(taxEquipmentInfo.getSksbCode()); BigDecimal hjse = orderItemInfos.stream().map(t -> new BigDecimal(t.getSe())).reduce(BigDecimal::add).get(); - if(StringUtils.isBlank(orderInfo.getHjse())){ + if (StringUtils.isBlank(orderInfo.getHjse())) { orderInfo.setHjse(hjse.toString()); } CommonOrderInfo commonOrderInfo = new CommonOrderInfo(); commonOrderInfo.setOrderItemInfo(orderItemInfos); commonOrderInfo.setOrderInfo(orderInfo); - return orderMergeService.orderItemMerge(commonOrderInfo,collect); + return orderMergeService.orderItemMerge(commonOrderInfo, collect); } @Override - public R batchMegerOrderItem(List jsonObjects){ + 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(entId,orderInfoId, null); - if(!ConfigureConstant.STRING_0000.equals(r.getCode())){ + R r = mergeOrderItem(entId, orderInfoId, null); + if (!ConfigureConstant.STRING_0000.equals(r.getCode())) { return r; } } catch (Exception e) { - log.error("批量合并报错orderInfoId:{},entId:{},报错信息:{}",orderInfoId,entId,e); - return R.error(String.format("结算单号%s明细行合并失败",ddh)); + log.error("批量合并报错orderInfoId:{},entId:{},报错信息:{}", orderInfoId, entId, e); + return R.error(String.format("结算单号%s明细行合并失败", ddh)); } } @@ -2133,7 +2136,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { @Override @Transactional(readOnly = true) public Boolean checkInvoiceRemarksFlag(String xfnsrsbh, String ghfId) { - log.info("判断内部关联交易填写备注,xfnsrsbh:{},ghfId:{}",xfnsrsbh, ghfId); + log.info("判断内部关联交易填写备注,xfnsrsbh:{},ghfId:{}", xfnsrsbh, ghfId); if (StringUtils.isBlank(xfnsrsbh)) { return Boolean.FALSE; } @@ -2143,47 +2146,46 @@ public class OrderInfoServiceImpl implements OrderInfoService { if (groupManagementMapper.countEntIdNumByXfnsrsbh(xfnsrsbh) <= 1) { return Boolean.FALSE; } - if (ghfId.length()<=6) { + if (ghfId.length() <= 6) { return Boolean.FALSE; } - if (!"000060".equals(ghfId.substring(0,6))) { + if (!"000060".equals(ghfId.substring(0, 6))) { return Boolean.FALSE; } - if (gsClientMapper.countGsdm(ghfId.replace("000060","")) == 0) { + if (gsClientMapper.countGsdm(ghfId.replace("000060", "")) == 0) { return Boolean.FALSE; } return Boolean.TRUE; } /** - * - * @param operation 0 开票,1 作废 、2冲红 + * @param operation 0 开票,1 作废 、2冲红 * @param params:发票请求流水号集合信息表编号 * @return */ @Override - public R checkInvoiceSync(String operation,String nsrsbh,String params){ + public R checkInvoiceSync(String operation, String nsrsbh, String params) { // TODO 过滤一层系统来源 List orderProcessInfos = null; Map> collect = null; - switch (operation){ + switch (operation) { case "0": //根据报账单号查询未开发票数,且有效 param:发票请求流水号集合,是否需要添加来源校验 orderProcessInfos = orderProcessInfoMapper.queryOrderProcessInfoByBzdhs(Arrays.asList(params.split(",")), Arrays.asList(nsrsbh)); //按照报账单分组统计 - if(orderProcessInfos == null || orderProcessInfos.isEmpty()){ + if (orderProcessInfos == null || orderProcessInfos.isEmpty()) { return R.error("根据报账单号未查询到数据"); } collect = orderProcessInfos.stream().collect(Collectors.groupingBy(t -> t.getBzdh())); Map> collect1 = Arrays.stream(params.split(",")).collect(Collectors.groupingBy(t -> t)); StringBuffer sb = new StringBuffer(); for (String s : collect1.keySet()) { - if(collect1.get(s).size() != collect.get(s).size()){ + if (collect1.get(s).size() != collect.get(s).size()) { sb.append("报账单号:").append(s).append("存在多笔未开订单,"); } } - if(StringUtils.isNotBlank(sb.toString())){ - return R.error(sb.toString().substring(0,sb.toString().length()-1)); + if (StringUtils.isNotBlank(sb.toString())) { + return R.error(sb.toString().substring(0, sb.toString().length() - 1)); } break; case "1": @@ -2193,10 +2195,10 @@ public class OrderInfoServiceImpl implements OrderInfoService { //AND ( oii.zf_bz = '0' OR oii.ch_bz = '0' ) List paramList = Arrays.asList(params.split(",")); orderProcessInfos = orderProcessInfoMapper.selectOrderProcessByFpqqlshs(paramList, Arrays.asList(nsrsbh)); - if(orderProcessInfos == null || orderProcessInfos.isEmpty()){ + if (orderProcessInfos == null || orderProcessInfos.isEmpty()) { return R.error("根据报账单号未查询到数据"); } - if(orderProcessInfos.stream().filter(t->OrderInfoEnum.SYS_SOURCE_SNYXX.getKey().equals(t.getXtly())).count() == 0){ + if (orderProcessInfos.stream().filter(t -> OrderInfoEnum.SYS_SOURCE_SNYXX.getKey().equals(t.getXtly())).count() == 0) { return R.ok(); } collect = orderProcessInfos.stream().collect(Collectors.groupingBy(t -> t.getBzdh())); @@ -2204,26 +2206,26 @@ public class OrderInfoServiceImpl implements OrderInfoService { List fpqqlsh = new ArrayList<>(); for (String s : collect.keySet()) { List orderProcessInfos1 = collect.get(s); - if(orderProcessInfos1.size() > 1){ + if (orderProcessInfos1.size() > 1) { //如果全部开具成功再添加否则返回报错信息 - int count = (int)orderProcessInfos1.stream() + int count = (int) orderProcessInfos1.stream() .filter(t -> OrderInfoEnum.ORDER_STATUS_5.getKey().equals(t.getDdzt()) || OrderInfoEnum.ORDER_STATUS_7.getKey().equals(t.getDdzt())).count(); - if(orderProcessInfos1.size() != count){ - sb1.append(String.format("本次作废存在商旅发票,报账单:%s存在未开具成功的结算单;",s)); + if (orderProcessInfos1.size() != count) { + sb1.append(String.format("本次作废存在商旅发票,报账单:%s存在未开具成功的结算单;", s)); continue; } fpqqlsh.addAll(orderProcessInfos1.stream().map(t -> t.getFpqqlsh()).collect(Collectors.toList())); } } //直接return ,存在未开具情况不查作废情况了 - if(StringUtils.isNotBlank(sb1.toString())){ + if (StringUtils.isNotBlank(sb1.toString())) { return R.error(sb1.toString()); } - if(!fpqqlsh.isEmpty()){ + if (!fpqqlsh.isEmpty()) { List invoiceInfos = orderInvoiceInfoMapper.selectInvoiceInfoByFpqqlshs(fpqqlsh); List collect2 = invoiceInfos.stream().filter(t -> !paramList.contains(t.getFpqqlsh())).map(t -> t.getFphm()).collect(Collectors.toList()); - if(!collect2.isEmpty()){ - return R.error(String.format("本次作废存在商旅发票,以下发票号码未作废:%s,请注意" ,collect2.stream().collect(Collectors.joining(",")) )); + if (!collect2.isEmpty()) { + return R.error(String.format("本次作废存在商旅发票,以下发票号码未作废:%s,请注意", collect2.stream().collect(Collectors.joining(",")))); } } break; @@ -2235,14 +2237,14 @@ public class OrderInfoServiceImpl implements OrderInfoService { * 查到流水号,在查红字冲红 */ List list = Arrays.asList(params.split(",")); - List yFpdmHm = list.stream().map(t->{ - return t.replace("-",""); + List yFpdmHm = list.stream().map(t -> { + return t.replace("-", ""); }).collect(Collectors.toList()); orderProcessInfos = orderProcessInfoMapper.selectOrderProcessByYFpdmHm(yFpdmHm, Arrays.asList(nsrsbh)); - if(orderProcessInfos == null || orderProcessInfos.isEmpty()){ + if (orderProcessInfos == null || orderProcessInfos.isEmpty()) { return R.error("根据原发票代码号码未查询到数据"); } - if(orderProcessInfos.stream().filter(t->OrderInfoEnum.SYS_SOURCE_SNYXX.getKey().equals(t.getXtly())).count() == 0){ + if (orderProcessInfos.stream().filter(t -> OrderInfoEnum.SYS_SOURCE_SNYXX.getKey().equals(t.getXtly())).count() == 0) { return R.ok(); } collect = orderProcessInfos.stream().collect(Collectors.groupingBy(t -> t.getBzdh())); @@ -2250,26 +2252,26 @@ public class OrderInfoServiceImpl implements OrderInfoService { List yfpqqlsh = new ArrayList<>(); for (String s : collect.keySet()) { List orderProcessInfos1 = collect.get(s); - if(orderProcessInfos1.size() > 1){ + if (orderProcessInfos1.size() > 1) { //如果全部开具成功再添加否则返回报错信息 - int count = (int)orderProcessInfos1.stream() + int count = (int) orderProcessInfos1.stream() .filter(t -> OrderInfoEnum.ORDER_STATUS_5.getKey().equals(t.getDdzt()) || OrderInfoEnum.ORDER_STATUS_7.getKey().equals(t.getDdzt())).count(); - if(orderProcessInfos1.size() != count){ - sb2.append(String.format("本次冲红存在商旅发票,报账单:%s存在未开具成功的结算单;",s)); + if (orderProcessInfos1.size() != count) { + sb2.append(String.format("本次冲红存在商旅发票,报账单:%s存在未开具成功的结算单;", s)); continue; } yfpqqlsh.addAll(orderProcessInfos1.stream().map(t -> t.getFpqqlsh()).collect(Collectors.toList())); } } //直接return ,存在未开具情况不查作废情况了 - if(StringUtils.isNotBlank(sb2.toString())){ + if (StringUtils.isNotBlank(sb2.toString())) { return R.error(sb2.toString()); } - if(!yfpqqlsh.isEmpty()){ + if (!yfpqqlsh.isEmpty()) { List invoiceInfos = orderInvoiceInfoMapper.selectInvoiceInfoByFpqqlshs(yfpqqlsh); List collect2 = invoiceInfos.stream().filter(t -> !list.contains(t.getFpdm() + "-" + t.getFphm())).map(t -> t.getFphm()).collect(Collectors.toList()); - if(!collect2.isEmpty()){ - return R.error(String.format("本次冲红存在商旅发票,以下发票号码需冲红:%s,请注意;",collect2.stream().collect(Collectors.joining(",")))); + if (!collect2.isEmpty()) { + return R.error(String.format("本次冲红存在商旅发票,以下发票号码需冲红:%s,请注意;", collect2.stream().collect(Collectors.joining(",")))); } } break; @@ -2280,19 +2282,21 @@ public class OrderInfoServiceImpl implements OrderInfoService { /** * 功能描述: 替换报账单号 + * * @param replaceOddDTO * @return : com.dxhy.order.model.R */ @Override public R replaceOdd(ReplaceOddDTO replaceOddDTO) { - if (StringUtils.isBlank(replaceOddDTO.getOrderId())){ - log.error("{},替换报账单号接口传入订单id为空",LOGGER_MSG); + if (StringUtils.isBlank(replaceOddDTO.getOrderId())) { + log.error("{},替换报账单号接口传入订单id为空", LOGGER_MSG); return R.error("传入订单id为空"); } - if (StringUtils.isBlank(replaceOddDTO.getOrderId())){ - log.error("{},替换报账单号接口传入报账单号为空",LOGGER_MSG); + if (StringUtils.isBlank(replaceOddDTO.getOrderId())) { + log.error("{},替换报账单号接口传入报账单号为空", LOGGER_MSG); return R.error("传入报账单号为空"); } + ObjectMapper objectMapper = new ObjectMapper(); try { // 调用sap获取报账单号状态 String poClient = baseServiceConfig.getPoClient(); @@ -2310,62 +2314,71 @@ public class OrderInfoServiceImpl implements OrderInfoService { PoCommonRequestParam poCommonRequestParam = new PoCommonRequestParam(); poCommonRequestParam.setIS_INPUT(isInput); String param = JsonUtils.getInstance().toJsonString(poCommonRequestParam); - log.info("{}获取公司client入参:{}",LOGGER_MSG,param); - String result = HttpUtils.sendPo(baseServiceConfig.getPoUrl(), param,baseServiceConfig.getPoUserName(),baseServiceConfig.getPoPassword()); - log.info("{}获取公司client出参:{}",LOGGER_MSG,result); - PoCommonResponseParam poCommonResponseParam = JsonUtils.getInstance().parseObject(result, PoCommonResponseParam.class); + log.info("{}获取公司client入参:{}", LOGGER_MSG, param); + String result = HttpUtils.sendPo(baseServiceConfig.getPoUrl(), param, + baseServiceConfig.getPoUserName(), baseServiceConfig.getPoPassword()); + log.info("{}获取公司client出参:{}", LOGGER_MSG, result); + PoCommonResponseParam poCommonResponseParam = + JsonUtils.getInstance().parseObject(result, PoCommonResponseParam.class); EsOutput es_output = poCommonResponseParam.getES_OUTPUT(); String ztype = es_output.getZTYPE(); String zmessage = es_output.getZMESSAGE(); - Object zdata = es_output.getZDATA(); - log.info("{},替换报账单号,替换信息:{}",JsonUtils.getInstance().toJsonString(poCommonResponseParam)); - List statusList = new ArrayList<>(); - if(OrderInfoContentEnum.INVOICE_ERROR_CODE_OP_S.getKey().equals(ztype)){ - List> gsClientList = JsonUtils.getInstance().parseObject(zdata.toString(), List.class); - gsClientList.stream().forEach(f -> { - String status = ObjectUtil.isNull(f.get("BZDZT"))?"":f.get("BZDZT").toString(); - statusList.add(status); - }); - for (String bzdzt : statusList) { - if ("50".equals(bzdzt)){ - log.error("{}sap报账单号状态不允许替换,报账单号状态:{}",LOGGER_MSG,bzdzt); - return R.error("该报账单号状态不允许替换"); - } + log.info("{},替换报账单号,替换信息:{}", LOGGER_MSG, JsonUtils.getInstance().toJsonString(poCommonResponseParam)); + // 解析sap返回结果 + if (OrderInfoContentEnum.INVOICE_ERROR_CODE_OP_S.getKey().equals(ztype)) { + JsonNode rootNode = objectMapper.readTree(result); + JsonNode esOutputNode = rootNode.get("ES_OUTPUT"); + JsonNode zDataNode = esOutputNode.get("ZDATA"); + if (StringUtils.isBlank(zDataNode.toString())) { + log.error("{}sap返回的data是空", LOGGER_MSG); + return R.error("未在sap系统中查询到该报账单号"); + } + String bzdzt = zDataNode.asText(); + JsonNode bzdztNode = objectMapper.readTree(bzdzt); + String bzdztValue = bzdztNode.get("BZDZT").asText(); + if (StringUtils.isBlank(bzdztValue)) { + log.error("{}sap返回的报账单号状态为空", LOGGER_MSG); + return R.error("未在sap系统中查询到该报账单号"); + } + log.info("{}sap返回报账单号状态:{}", LOGGER_MSG, bzdztValue); + if ("50".equals(bzdztValue)) { + log.error("{}sap报账单号状态不允许替换,报账单号状态:{}", LOGGER_MSG, bzdztValue); + return R.error("该报账单号状态不允许替换"); } OrderInfo newOrderInfo = orderMapper.findByFpqqlish(replaceOddDTO.getBzdh()); - if (newOrderInfo == null){ - log.error("{}输入报账单号在该系统未查询到信息,不允许替换",LOGGER_MSG); + if (newOrderInfo == null) { + log.error("{}输入报账单号在该系统未查询到信息,不允许替换", LOGGER_MSG); return R.error("输入报账单号在该系统未查询到信息,不允许替换"); } OrderInfo yOrderInfo = orderMapper.findByOrderId(replaceOddDTO.getOrderId()); // 判断金额是否一致 - if (!(yOrderInfo.getKphjje().equals(newOrderInfo.getKphjje()))){ - log.error("{}两张报账单金额不一致,不允许替换",LOGGER_MSG); + if (!(yOrderInfo.getKphjje().equals(newOrderInfo.getKphjje()))) { + log.error("{}两张报账单金额不一致,不允许替换", LOGGER_MSG); return R.error("两张报账单金额不一致,不允许替换"); } List orderInvoiceInfoList = orderInvoiceInfoMapper.findByOrderId(replaceOddDTO.getOrderId()); - if (orderInvoiceInfoList == null || orderInvoiceInfoList.size() <= 0){ - log.error("{}原报账单号在该系统未查询到发票信息,不允许替换",LOGGER_MSG); + if (orderInvoiceInfoList == null || orderInvoiceInfoList.size() <= 0) { + log.error("{}原报账单号在该系统未查询到发票信息,不允许替换", LOGGER_MSG); return R.error("原报账单号在该系统未查询到发票信息,不允许替换"); } // 校验原报账单号是否开票成功 List resultList = new ArrayList<>(); for (OrderInvoiceInfo orderInvoiceInfo : orderInvoiceInfoList) { - if (!("2".equals(orderInvoiceInfo.getKpzt()))){ - log.error("{}原报账单号未开票成功,不允许替换",LOGGER_MSG); + if (!("2".equals(orderInvoiceInfo.getKpzt()))) { + log.error("{}原报账单号未开票成功,不允许替换", LOGGER_MSG); return R.error("原报账单号未开票成功,不允许替换"); } orderInvoiceInfo.setOrderInfoId(newOrderInfo.getId()); orderInvoiceInfo.setOrderProcessInfoId(newOrderInfo.getProcessId()); orderInvoiceInfo.setFpqqlsh(newOrderInfo.getFpqqlsh()); orderInvoiceInfo.setDdh(newOrderInfo.getDdh()); - int count = orderInvoiceInfoMapper.updateOrderInvoiceInfoById(orderInvoiceInfo); - if (count > 0){ - log.info("{}替换报账单号接口,更新发票信息成功,发票信息:{}",LOGGER_MSG, + int count = orderInvoiceInfoMapper.updateOrderInvoiceInfoById(orderInvoiceInfo); + if (count > 0) { + log.info("{}替换报账单号接口,更新发票信息成功,发票信息:{}", LOGGER_MSG, JsonUtils.getInstance().toJsonString(orderInvoiceInfo)); - }else { - log.error("{}替换报账单号接口,更新发票信息失败,发票信息:{}",LOGGER_MSG, + } else { + log.error("{}替换报账单号接口,更新发票信息失败,发票信息:{}", LOGGER_MSG, JsonUtils.getInstance().toJsonString(orderInvoiceInfo)); } resultList.add(orderInvoiceInfo); @@ -2387,31 +2400,31 @@ public class OrderInfoServiceImpl implements OrderInfoService { commonTsMqData.setEntId(orderInvoiceInfo.getEntId()); commonTsMqData.setFpTsMqData(fpTsMqData); rabbitMqSendMessageService.autoSendRabbitMqMessageForBusiness(NsrQueueEnum.PUSH_MESSAGE.getValue(), JsonUtils.getInstance().toJsonString(commonTsMqData)); - log.info("{}替换报账单号发票推送成功,推送信息:{}",LOGGER_MSG,JsonUtils.getInstance().toJsonString(commonTsMqData)); + log.info("{}替换报账单号发票推送成功,推送信息:{}", LOGGER_MSG, JsonUtils.getInstance().toJsonString(commonTsMqData)); } return R.ok("替换成功"); - }else { - log.error("{}调用sap系统出错,结果不是S,返回错误信息:{}",LOGGER_MSG,zmessage); + } else { + log.error("{}调用sap系统出错,结果不是S,返回错误信息:{}", LOGGER_MSG, zmessage); return R.error("替换失败,调用sap返回信息有误"); } - }catch (Exception e){ - log.error("{},替换保证单号接口异常,异常信息:{}",LOGGER_MSG,e.getMessage()); + } catch (Exception e) { + log.error("{},替换保证单号接口异常,异常信息:{}", LOGGER_MSG, e.getMessage()); return R.error("替换失败"); } } // 删除原报账单信息 - private void deleteBzdh(String orderId){ + private void deleteBzdh(String orderId) { try { int countOrderInfo = orderMapper.deleteByOrderId(orderId); int countOrderProcessInfo = orderProcessInfoMapper.deleteByOrderId(orderId); int countItem = orderItemInfoMapper.deleteByOrderId(orderId); - log.info("{}替换报账单号,删除原报账单信息:{},{},{}",LOGGER_MSG,countOrderInfo,countOrderProcessInfo,countItem); - if (countOrderInfo > 0 && countOrderProcessInfo > 0 && countItem > 0){ - log.info("{}替换报账单号,删除原报账单信息成功",LOGGER_MSG); + log.info("{}替换报账单号,删除原报账单信息:{},{},{}", LOGGER_MSG, countOrderInfo, countOrderProcessInfo, countItem); + if (countOrderInfo > 0 && countOrderProcessInfo > 0 && countItem > 0) { + log.info("{}替换报账单号,删除原报账单信息成功", LOGGER_MSG); } - }catch (Exception e){ - log.error("{},替换报账单号,删除原报账单号异常,异常信息:{}",LOGGER_MSG,e.getMessage()); + } catch (Exception e) { + log.error("{},替换报账单号,删除原报账单号异常,异常信息:{}", LOGGER_MSG, e.getMessage()); } } @@ -2422,7 +2435,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { //优惠政策标识 if (StringUtils.isBlank(item.getYhzcbs()) && StringUtils.isNotBlank(commodity.getYhzcbs())) { item.setYhzcbs(commodity.getYhzcbs()); - }else if(StringUtils.isBlank(item.getYhzcbs()) && StringUtils.isBlank(commodity.getYhzcbs())){ + } else if (StringUtils.isBlank(item.getYhzcbs()) && StringUtils.isBlank(commodity.getYhzcbs())) { item.setYhzcbs(ConfigureConstant.STRING_0); } @@ -2436,9 +2449,9 @@ public class OrderInfoServiceImpl implements OrderInfoService { String spmc = ""; StringBuilder stringBuilder = new StringBuilder(); - if(StrUtil.isNotBlank(commodity.getInvoiceName())){ + if (StrUtil.isNotBlank(commodity.getInvoiceName())) { spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(commodity.getInvoiceName().trim()).toString(); - }else{ + } else { spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(commodity.getXmmc().trim()).toString(); } item.setXmmc(spmc); @@ -2459,12 +2472,12 @@ public class OrderInfoServiceImpl implements OrderInfoService { if (StringUtils.isBlank(item.getHsbz()) && StringUtils.isNotBlank(commodity.getHsbz())) { item.setHsbz(commodity.getHsbz()); } - if(StringUtils.isNotBlank(commodity.getTswl())){ + if (StringUtils.isNotBlank(commodity.getTswl())) { item.setTswl(commodity.getTswl()); } } - private PageKySlRsp getDefaultKySlList(OrderInfoEnum orderInfoEnum){ + private PageKySlRsp getDefaultKySlList(OrderInfoEnum orderInfoEnum) { PageKySlRsp pageKySlRsp = new PageKySlRsp(); pageKySlRsp.setSl(orderInfoEnum.getKey()); pageKySlRsp.setSlMc(orderInfoEnum.getValue()); @@ -2473,38 +2486,39 @@ public class OrderInfoServiceImpl implements OrderInfoService { /** * 红字信息表不存在清单的,对比订单和红字信息表 + * * @param order , hzxxb * @return */ - private Map compareOrderAndHzxxb(CommonOrderInfo order,CommonOrderInfo hzxxb) { + private Map compareOrderAndHzxxb(CommonOrderInfo order, CommonOrderInfo hzxxb) { OrderInfo orderOrderInfo = order.getOrderInfo(); OrderInfo hzxxbOrderInfo = hzxxb.getOrderInfo(); StringBuffer errorMsg = new StringBuffer(); - Map returnMap = new HashMap<>(); - returnMap.put("code","0000"); - returnMap.put("msg","success"); + Map returnMap = new HashMap<>(); + returnMap.put("code", "0000"); + returnMap.put("msg", "success"); Map gxfCheckMap = compareOrderAndHzxxbGXF(order, hzxxb); - if("9999".equals(gxfCheckMap.get("code"))){ + if ("9999".equals(gxfCheckMap.get("code"))) { errorMsg.append(gxfCheckMap.get("msg")); } - log.info("订单明细{}",JsonUtils.getInstance().toJsonString(order.getOrderItemInfo())); - log.info("红字信息表明细{}",JsonUtils.getInstance().toJsonString(hzxxb.getOrderItemInfo())); - if(hzxxb.getOrderItemInfo().size()!=order.getOrderItemInfo().size()){ - errorMsg.append("红字信息表明细条数和订单明细条数不一致,红字信息表明细条数:"+hzxxb.getOrderItemInfo().size()+"订单明细条数:"+order.getOrderItemInfo().size()); - returnMap.put("code","9999"); - returnMap.put("msg",errorMsg.toString()); + log.info("订单明细{}", JsonUtils.getInstance().toJsonString(order.getOrderItemInfo())); + log.info("红字信息表明细{}", JsonUtils.getInstance().toJsonString(hzxxb.getOrderItemInfo())); + if (hzxxb.getOrderItemInfo().size() != order.getOrderItemInfo().size()) { + errorMsg.append("红字信息表明细条数和订单明细条数不一致,红字信息表明细条数:" + hzxxb.getOrderItemInfo().size() + "订单明细条数:" + order.getOrderItemInfo().size()); + returnMap.put("code", "9999"); + returnMap.put("msg", errorMsg.toString()); return returnMap; } - hzxxb.getOrderItemInfo().stream().forEach(hzxxbItem ->{ - List filterItem= new ArrayList<>(); + hzxxb.getOrderItemInfo().stream().forEach(hzxxbItem -> { + List filterItem = new ArrayList<>(); BigDecimal hzxxbJshj = new BigDecimal(hzxxbItem.getXmje()).add(new BigDecimal(hzxxbItem.getSe())); - for(OrderItemInfo orderItemInfo :order.getOrderItemInfo()){ + for (OrderItemInfo orderItemInfo : order.getOrderItemInfo()) { BigDecimal orderJshj = new BigDecimal(orderItemInfo.getXmje()).add(new BigDecimal(orderItemInfo.getSe())); - if(hzxxbJshj.compareTo(orderJshj)==0 && hzxxbItem.getXmmc().contains(orderItemInfo.getXmmc()) && orderItemInfo.getSl().equals(hzxxbItem.getSl())){ + if (hzxxbJshj.compareTo(orderJshj) == 0 && hzxxbItem.getXmmc().contains(orderItemInfo.getXmmc()) && orderItemInfo.getSl().equals(hzxxbItem.getSl())) { filterItem.add(orderItemInfo); } } - if(filterItem.size() == 0){ + if (filterItem.size() == 0) { errorMsg.append("红字信息表明细[").append(hzxxbItem.getXmmc()).append("-").append(hzxxbItem.getGgxh()).append("-").append(hzxxbItem.getSl()).append("-").append(hzxxbItem.getXmdj()).append("],在订单中未匹配到对应明细;"); } }); @@ -2533,57 +2547,58 @@ public class OrderInfoServiceImpl implements OrderInfoService { } }); */ - if(errorMsg.length() > 0){ - returnMap.put("code","9999"); - returnMap.put("msg",errorMsg.toString()); + if (errorMsg.length() > 0) { + returnMap.put("code", "9999"); + returnMap.put("msg", errorMsg.toString()); } return returnMap; } - /** * 红字信息表存在清单的,对比订单和红字信息表 + * * @param order , hzxxb * @return */ - private Map compareOrderAndHzxxbQd(CommonOrderInfo order,CommonOrderInfo hzxxb) { + private Map compareOrderAndHzxxbQd(CommonOrderInfo order, CommonOrderInfo hzxxb) { OrderInfo orderOrderInfo = order.getOrderInfo(); OrderInfo hzxxbOrderInfo = hzxxb.getOrderInfo(); StringBuffer errorMsg = new StringBuffer(); - Map returnMap = new HashMap<>(); - returnMap.put("code","0000"); - returnMap.put("msg","success"); + Map returnMap = new HashMap<>(); + returnMap.put("code", "0000"); + returnMap.put("msg", "success"); Map gxfCheckMap = compareOrderAndHzxxbGXF(order, hzxxb); - if("9999".equals(gxfCheckMap.get("code"))){ + if ("9999".equals(gxfCheckMap.get("code"))) { errorMsg.append(gxfCheckMap.get("msg")); } - if(new BigDecimal(orderOrderInfo.getKphjje()).compareTo(new BigDecimal(hzxxbOrderInfo.getKphjje())) != 0){ + if (new BigDecimal(orderOrderInfo.getKphjje()).compareTo(new BigDecimal(hzxxbOrderInfo.getKphjje())) != 0) { errorMsg.append("订单与红字信息表的合计金额不一致;"); } - if(errorMsg.length() > 0){ - returnMap.put("code","9999"); - returnMap.put("msg",errorMsg.toString()); + if (errorMsg.length() > 0) { + returnMap.put("code", "9999"); + returnMap.put("msg", errorMsg.toString()); } return returnMap; } /** * 对比订单和红字信息表的购销方信息 + * * @param order , hzxxb * @return */ - private Map compareOrderAndHzxxbGXF(CommonOrderInfo order,CommonOrderInfo hzxxb) { + private Map compareOrderAndHzxxbGXF(CommonOrderInfo order, CommonOrderInfo hzxxb) { StringBuffer errorMsg = new StringBuffer(); - Map returnMap = new HashMap<>(); - returnMap.put("code","0000"); - returnMap.put("msg","success"); + Map returnMap = new HashMap<>(); + returnMap.put("code", "0000"); + returnMap.put("msg", "success"); OrderInfo orderOrderInfo = order.getOrderInfo(); OrderInfo hzxxbOrderInfo = hzxxb.getOrderInfo(); - if(!orderOrderInfo.getXhfNsrsbh().equals(hzxxbOrderInfo.getXhfNsrsbh())){ + if (!orderOrderInfo.getXhfNsrsbh().equals(hzxxbOrderInfo.getXhfNsrsbh())) { errorMsg.append("订单销方纳税人识别号:").append(orderOrderInfo.getXhfNsrsbh()).append(" 红字信息表销方纳税人识别号:").append(hzxxbOrderInfo.getXhfNsrsbh()).append(" 不一致;"); } - if(!orderOrderInfo.getXhfMc().equals(hzxxbOrderInfo.getXhfMc())){ + if (!orderOrderInfo.getXhfMc().equals(hzxxbOrderInfo.getXhfMc())) { errorMsg.append("订单销方名称:").append(orderOrderInfo.getXhfMc()).append(" 红字信息表销方名称:").append(hzxxbOrderInfo.getXhfMc()).append(" 不一致;"); } // if(!orderOrderInfo.getXhfDz().equals(hzxxbOrderInfo.getXhfDz())){ @@ -2599,10 +2614,10 @@ public class OrderInfoServiceImpl implements OrderInfoService { // errorMsg.append("订单销方账号:").append(orderOrderInfo.getXhfZh()).append(" 红字信息表销方账号:").append(hzxxbOrderInfo.getXhfZh()).append(" 不一致;"); // } - if(!orderOrderInfo.getGhfNsrsbh().equals(hzxxbOrderInfo.getGhfNsrsbh())){ + if (!orderOrderInfo.getGhfNsrsbh().equals(hzxxbOrderInfo.getGhfNsrsbh())) { errorMsg.append("订单购方纳税人识别号:").append(orderOrderInfo.getGhfNsrsbh()).append(" 红字信息表购方纳税人识别号:").append(hzxxbOrderInfo.getGhfNsrsbh()).append(" 不一致;"); } - if(!orderOrderInfo.getGhfMc().equals(hzxxbOrderInfo.getGhfMc())){ + if (!orderOrderInfo.getGhfMc().equals(hzxxbOrderInfo.getGhfMc())) { errorMsg.append("订单购方名称:").append(orderOrderInfo.getGhfMc()).append(" 红字信息表购方名称:").append(hzxxbOrderInfo.getGhfMc()).append(" 不一致;"); } // if(!orderOrderInfo.getGhfDz().equals(hzxxbOrderInfo.getGhfDz())){ @@ -2618,9 +2633,9 @@ public class OrderInfoServiceImpl implements OrderInfoService { // errorMsg.append("订单购方账号:").append(orderOrderInfo.getGhfZh()).append(" 红字信息表购方账号:").append(hzxxbOrderInfo.getGhfZh()).append(" 不一致;"); // } - if(errorMsg.length() > 0){ - returnMap.put("code","9999"); - returnMap.put("msg",errorMsg.toString()); + if (errorMsg.length() > 0) { + returnMap.put("code", "9999"); + returnMap.put("msg", errorMsg.toString()); } return returnMap; } @@ -2638,7 +2653,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { query.setXxbbh(f); SpecialInvoiceReversalEntity specialInvoiceReversalEntity = specialInvoiceReversalMapper.selectSpecialInvoiceReversal(query); List specialInvoiceReversalItems = specialInvoiceReversalItemMapper.selectItemListBySpecialInvoiceReversalId(specialInvoiceReversalEntity.getId()); - if(specialInvoiceReversalItems.size() == 1 && ConfigureConstant.XJZSXHQD.equals(specialInvoiceReversalItems.get(0).getXmmc())){ + if (specialInvoiceReversalItems.size() == 1 && ConfigureConstant.XJZSXHQD.equals(specialInvoiceReversalItems.get(0).getXmmc())) { b = true; break; } @@ -2648,34 +2663,35 @@ public class OrderInfoServiceImpl implements OrderInfoService { /** * 校验红字信息表否在销项系统中存在 并且状态是不是审核通过 + * * @param hzxxbbhList * @return */ - private Map checkHzxxb(List hzxxbbhList) { + private Map checkHzxxb(List hzxxbbhList) { StringBuffer errorMsg = new StringBuffer(); - Map returnMap = new HashMap<>(); - returnMap.put("code","0000"); - returnMap.put("msg","success"); + Map returnMap = new HashMap<>(); + returnMap.put("code", "0000"); + returnMap.put("msg", "success"); hzxxbbhList.stream().forEach(f -> { SpecialInvoiceReversalEntity query = new SpecialInvoiceReversalEntity(); query.setXxbbh(f); SpecialInvoiceReversalEntity reversalByXxbbh = specialInvoiceReversalMapper.selectSpecialInvoiceReversal(query); - if(ObjectUtil.isNotNull(reversalByXxbbh)){ - if(!OrderInfoEnum.SPECIAL_INVOICE_STATUS_TZD0000.getKey().equals(reversalByXxbbh.getStatusCode()) && + if (ObjectUtil.isNotNull(reversalByXxbbh)) { + if (!OrderInfoEnum.SPECIAL_INVOICE_STATUS_TZD0000.getKey().equals(reversalByXxbbh.getStatusCode()) && !OrderInfoEnum.SPECIAL_INVOICE_STATUS_01.getKey().equals(reversalByXxbbh.getStatusCode()) && - !OrderInfoEnum.SPECIAL_INVOICE_STATUS_04.getKey().equals(reversalByXxbbh.getStatusCode())){ + !OrderInfoEnum.SPECIAL_INVOICE_STATUS_04.getKey().equals(reversalByXxbbh.getStatusCode())) { errorMsg.append("红字信息表[").append(f).append("]状态不是审核通过|无需确认|购销双方已确认;"); } - if(OrderInfoEnum.INVOICE_STATUS_1.getKey().equals(reversalByXxbbh.getKpzt()) || OrderInfoEnum.INVOICE_STATUS_2.getKey().equals(reversalByXxbbh.getKpzt())){ + if (OrderInfoEnum.INVOICE_STATUS_1.getKey().equals(reversalByXxbbh.getKpzt()) || OrderInfoEnum.INVOICE_STATUS_2.getKey().equals(reversalByXxbbh.getKpzt())) { errorMsg.append("红字信息表[").append(f).append("]已经开票成功或正在开票中;"); } - }else { + } else { errorMsg.append("红字信息表[").append(f).append("]不存在;"); } }); - if(errorMsg.length() > 0){ - returnMap.put("code","9999"); - returnMap.put("msg",errorMsg.toString()); + if (errorMsg.length() > 0) { + returnMap.put("code", "9999"); + returnMap.put("msg", errorMsg.toString()); } return returnMap; }