diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/DeliveryListServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/DeliveryListServiceImpl.java index f22423e2..39187239 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/DeliveryListServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/DeliveryListServiceImpl.java @@ -6,6 +6,7 @@ import java.util.function.Function; import java.util.stream.Collectors; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.StrUtil; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.exception.ServiceException; @@ -17,6 +18,7 @@ import com.ruoyi.sip.dto.ApiDataQueryDto; import com.ruoyi.sip.mapper.OrderInfoMapper; import com.ruoyi.sip.mapper.ProductInfoMapper; import com.ruoyi.sip.vo.DeliveryInfoVo; +import org.springframework.core.annotation.Order; import org.springframework.stereotype.Service; import com.ruoyi.sip.mapper.DeliveryListMapper; import com.ruoyi.sip.domain.DeliveryList; @@ -154,7 +156,9 @@ public class DeliveryListServiceImpl implements IDeliveryListService { List orderListList = infoMapper.listMaintenanceByOrderIdList(orderIdList); // 构建维护类型与年限的映射 - Map> maintenanceTypeYearMap = buildMaintenanceTypeYearMap(orderListList); +// Map> maintenanceTypeYearMap = buildMaintenanceTypeYearMap(orderListList); + Map> maintenanceTypeMap = orderListList.stream().filter(item -> item.getProductInfo() != null).collect( + Collectors.groupingBy(OrderList::getOrderId, Collectors.mapping(OrderList::getProductInfo, Collectors.toList()))); // 查询标准硬件维保的产品信息 @@ -163,7 +167,7 @@ public class DeliveryListServiceImpl implements IDeliveryListService { List productInfos = productInfoMapper.selectProductInfoList(productInfo); // 设置服务等级和服务结束时间 for (DeliveryInfoVo deliveryInfoVo : deliveryInfoVos) { - updateDeliveryInfoVo(deliveryInfoVo, maintenanceTypeYearMap, productInfos); + updateDeliveryInfoVo(deliveryInfoVo, maintenanceTypeMap, productInfos); } return deliveryInfoVos; @@ -200,25 +204,39 @@ public class DeliveryListServiceImpl implements IDeliveryListService { /** * 更新 DeliveryInfoVo 的服务等级和服务结束时间 */ - private void updateDeliveryInfoVo(DeliveryInfoVo deliveryInfoVo, Map> maintenanceTypeYearMap, List productInfos) { - Map yearMap = maintenanceTypeYearMap.get(deliveryInfoVo.getOrderId()); - if (yearMap != null) { - Integer year; + private void updateDeliveryInfoVo(DeliveryInfoVo deliveryInfoVo, Map> maintenanceTypeMap, List productInfos) { + List productInfoList = maintenanceTypeMap.get(deliveryInfoVo.getOrderId()); + if (CollUtil.isNotEmpty(productInfoList)) { + int year = 0; + StringJoiner desc=new StringJoiner(";"); if (ProductInfo.ProductTypeEnum.SOFTWARE.getType().equals(deliveryInfoVo.getProductType())) { - year = yearMap.getOrDefault(ProductInfo.ProductTypeEnum.SOFTWARE_MAINTENANCE.getType(), 0); + for (ProductInfo productInfo : productInfoList) { + if (ProductInfo.ProductTypeEnum.SOFTWARE_MAINTENANCE.getType().equals(productInfo.getType()) && StringUtils.isNotEmpty(productInfo.getValue())) { + year += Integer.parseInt(productInfo.getValue()); + desc.add(productInfo.getDescription()); + } + } + + } else { - year = yearMap.getOrDefault(ProductInfo.ProductTypeEnum.HARDWARE_MAINTENANCE.getType(), 0); + for (ProductInfo productInfo : productInfoList) { + if (ProductInfo.ProductTypeEnum.HARDWARE_MAINTENANCE.getType().equals(productInfo.getType()) && StringUtils.isNotEmpty(productInfo.getValue())) { + year += Integer.parseInt(productInfo.getValue()); + desc.add(productInfo.getDescription()); + } + } } if (year == 0 && ProductInfo.ProductTypeEnum.HARDWARE.getType().equals(deliveryInfoVo.getProductType()) && CollUtil.isNotEmpty(productInfos)) { // 判断是否硬件,如果是硬件取标准维保三年 if (StringUtils.isNotEmpty(productInfos.get(0).getValue())) { - year = Integer.valueOf(productInfos.get(0).getValue()); + year = Integer.parseInt(productInfos.get(0).getValue()); } } - deliveryInfoVo.setServiceLevel(year.toString()); + deliveryInfoVo.setServiceLevel(Integer.toString(year)); + deliveryInfoVo.setServiceDescribe(desc.toString()); deliveryInfoVo.setServiceEndTime(DateUtils.addYears(deliveryInfoVo.getServiceStartTime(), year)); } } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OrderInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OrderInfoServiceImpl.java index 13c1262d..650b2ecf 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OrderInfoServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OrderInfoServiceImpl.java @@ -175,7 +175,7 @@ public class OrderInfoServiceImpl implements IOrderInfoService orderInfoVo.setOrderName(orderInfo.getOrderName()); orderInfoVo.setVersionCode(orderInfo.getVersionCode()); // 固定值待确认 - orderInfoVo.setBgType(DictUtils.getDictLabel("bg_type", orderInfo.getBgType())); +// orderInfoVo.setBgType(DictUtils.getDictLabel("bg_type", orderInfo.getBgType())); orderInfoVo.setLastUpdateTime(orderInfo.getUpdatedAt()); // 设置代表处信息 setAgentInfo(orderInfoVo, agentInfoMap.get(orderInfo.getOrderAgentCode())); @@ -217,15 +217,15 @@ public class OrderInfoServiceImpl implements IOrderInfoService */ private void setAgentInfo(OrderInfoVo orderInfoVo, AgentInfo agentInfo) { if (agentInfo != null) { - orderInfoVo.setOrderAgentCode(agentInfo.getAgentCode()); - orderInfoVo.setOrderAgentName(agentInfo.getAgentName()); - orderInfoVo.setDeliveredAgentCode(agentInfo.getAgentCode()); - orderInfoVo.setDeliveredAgentName(agentInfo.getAgentName()); - orderInfoVo.setRevenueAgentCode(agentInfo.getAgentCode()); - orderInfoVo.setRevenueAgentName(agentInfo.getAgentName()); +// orderInfoVo.setOrderAgentCode(agentInfo.getAgentCode()); +// orderInfoVo.setOrderAgentName(agentInfo.getAgentName()); +// orderInfoVo.setDeliveredAgentCode(agentInfo.getAgentCode()); +// orderInfoVo.setDeliveredAgentName(agentInfo.getAgentName()); +// orderInfoVo.setRevenueAgentCode(agentInfo.getAgentCode()); +// orderInfoVo.setRevenueAgentName(agentInfo.getAgentName()); orderInfoVo.setSaleName(agentInfo.getContactPerson()); orderInfoVo.setSaleEmail(agentInfo.getContactEmail()); - orderInfoVo.setSalePhone(agentInfo.getContactPhone()); +// orderInfoVo.setSalePhone(agentInfo.getContactPhone()); } } @@ -234,11 +234,11 @@ public class OrderInfoServiceImpl implements IOrderInfoService */ private void setCustomerInfo(OrderInfoVo orderInfoVo, OrderInfo dto) { if (dto != null) { - orderInfoVo.setCustomerCode(dto.getCustomerCode()); +// orderInfoVo.setCustomerCode(dto.getCustomerCode()); orderInfoVo.setCustomerName(dto.getCustomerName()); - orderInfoVo.setCustomerPostcode(dto.getCustomerPostcode()); - orderInfoVo.setIndustryType(DictUtils.getDictLabel("industry_type",dto.getIndustryType())); - orderInfoVo.setCustomerAddress(dto.getCustomerAddress()); +// orderInfoVo.setCustomerPostcode(dto.getCustomerPostcode()); +// orderInfoVo.setIndustryType(DictUtils.getDictLabel("industry_type",dto.getIndustryType())); +// orderInfoVo.setCustomerAddress(dto.getCustomerAddress()); orderInfoVo.setContactPerson(dto.getCustomerContact()); orderInfoVo.setContactEmail(dto.getCustomerEmail()); orderInfoVo.setContactPhone(dto.getCustomerPhone()); diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/DeliveryInfoVo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/DeliveryInfoVo.java index 6ec7a48c..31f5abdc 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/DeliveryInfoVo.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/DeliveryInfoVo.java @@ -28,6 +28,12 @@ public class DeliveryInfoVo { private String versionCode; //条码 private String serialNumber; + private String productCode; + @JsonIgnore + private String productName; + private String productDescription; + + //服务级别 private String serviceLevel; //服务描述 diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/OrderInfoVo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/OrderInfoVo.java index c09daea4..b13ea0a5 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/OrderInfoVo.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/OrderInfoVo.java @@ -26,32 +26,32 @@ public class OrderInfoVo { private String orderName; //版本号 private String versionCode; - //下单代表处 - private String orderAgentName; - private String orderAgentCode; - //交付代表 - private String deliveredAgentName; - private String deliveredAgentCode; - //收益代表 - private String revenueAgentName; - private String revenueAgentCode; +// //下单代表处 +// private String orderAgentName; +// private String orderAgentCode; +// //交付代表 +// private String deliveredAgentName; +// private String deliveredAgentCode; +// //收益代表 +// private String revenueAgentName; +// private String revenueAgentCode; //销售人员 private String saleName; private String saleEmail; - private String salePhone; +// private String salePhone; // 客户编码 - private String customerCode; +// private String customerCode; // 客户名称 private String customerName; //客户邮编 - private String customerPostcode; +// private String customerPostcode; //BG属性 - private String bgType; +// private String bgType; //一级行业 - private String industryType; +// private String industryType; //客户地址 - private String customerAddress; +// private String customerAddress; //客户联系人 private String contactPerson; //客户电话 diff --git a/ruoyi-sip/src/main/resources/mapper/manage/DeliveryListMapper.xml b/ruoyi-sip/src/main/resources/mapper/manage/DeliveryListMapper.xml index 168ae327..395d880a 100644 --- a/ruoyi-sip/src/main/resources/mapper/manage/DeliveryListMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/manage/DeliveryListMapper.xml @@ -59,7 +59,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" t2.delivery_date as service_start_time, t3.order_code, t3.version_code, - t4.product_name as service_describe, + t4.product_name , + t4.product_code, + t4.description as product_description, t4.type as product_type FROM delivery_list t1 inner JOIN order_delivery t2 ON t1.delivery_id = t2.id