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 a202226..d62cd6d 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 @@ -180,8 +180,14 @@ public class SkOrderServiceImpl implements OrderService { try { if (locked){ List skOrderItemInfoList = skOrderItemInfoMapper.queryOrderItemInfo(skOrderInfo.getId()); + boolean fpresent = skOrderItemInfoList.stream().filter(item -> DecimalCalculateUtil.stringLessZero(item.getHsje())).findFirst().isPresent(); + boolean zpresent = skOrderItemInfoList.stream().filter(item -> DecimalCalculateUtil.stringMoreZero(item.getHsje())).findFirst().isPresent(); + if (fpresent && zpresent && skOrderItemInfoList.size() > ConfigureConstant.INT_2){ + backMessage.add(String.format(message, skOrderInfo.getXsddm(), "负数行订单明细不能超过两行")); + continue; + } if (CollectionUtils.isNotEmpty(skOrderItemInfoList)) { - DdpcxxReqBO ddpcxxReqBO = transitionReadData(skOrderInfo, skOrderItemInfoList, deptEntity); + DdpcxxReqBO ddpcxxReqBO = transitionReadData(fpresent && zpresent,skOrderInfo, skOrderItemInfoList, deptEntity); DdpcxxRspBO ddpcxxRspBO = allocateInvoiceInterfaceServiceImplV3.allocateInvoicesV3(ddpcxxReqBO, "", null, ConfigurerInfo.INTERFACE_VERSION_V6); log.debug("V3生成预制返回信息:{}", JSON.toJSONString(ddpcxxRspBO)); String format = String.format(message, skOrderInfo.getXsddm(), ddpcxxRspBO.getZTXX()); @@ -338,7 +344,7 @@ public class SkOrderServiceImpl implements OrderService { return ConfigureConstant.INT_1; } - public DdpcxxReqBO transitionReadData(SkOrderInfo skOrderInfo, List skOrderItemInfoList, DeptEntity deptEntity) { + public DdpcxxReqBO transitionReadData(boolean isZk, SkOrderInfo skOrderInfo, List skOrderItemInfoList, DeptEntity deptEntity) { TaxEquipmentInfo taxEquipmentInfo = simsBackService.queryTaxEquipment(deptEntity.getTaxpayerCode(), deptEntity.getDeptId()); @@ -387,7 +393,6 @@ public class SkOrderServiceImpl implements OrderService { String invoiceAmount = ConfigureConstant.STRING_0; String taxAmount = ConfigureConstant.STRING_0; - boolean isZk = skOrderItemInfoList.size()>ConfigureConstant.INT_1; String xmmc = skOrderItemInfoList.get(ConfigureConstant.INT_0).getCpmc(); if (isZk){ List collect = skOrderItemInfoList.stream().filter(item -> DecimalCalculateUtil.stringCompare(item.getHsje(), ConfigureConstant.STRING_0) > ConfigureConstant.INT_0).collect(Collectors.toList());