diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java index 57af71c1..b33cb876 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java @@ -171,4 +171,7 @@ public class ProjectOrderInfo extends BaseEntity { private List contractFileList; private List configFileList; + private List softwareProjectProductInfoList; + private List hardwareProjectProductInfoList; + private List maintenanceProjectProductInfoList; } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java index 13de27c8..161e98d1 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.sip.service.impl; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -9,15 +10,11 @@ import cn.hutool.core.collection.CollUtil; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ShiroUtils; -import com.ruoyi.sip.domain.Cnarea; -import com.ruoyi.sip.domain.ProjectOrderFileLog; -import com.ruoyi.sip.service.ICnareaService; -import com.ruoyi.sip.service.IProjectOrderFileLogService; +import com.ruoyi.sip.domain.*; +import com.ruoyi.sip.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.sip.mapper.ProjectOrderInfoMapper; -import com.ruoyi.sip.domain.ProjectOrderInfo; -import com.ruoyi.sip.service.IProjectOrderInfoService; import com.ruoyi.common.core.text.Convert; /** @@ -34,6 +31,8 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService { @Autowired private IProjectOrderFileLogService fileLogService; @Autowired + private IProjectProductInfoService productInfoService; + @Autowired private ICnareaService cnareaService; /** * 查询订单管理 @@ -44,6 +43,16 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService { @Override public ProjectOrderInfo selectProjectOrderInfoById(Long id) { ProjectOrderInfo projectOrderInfo = projectOrderInfoMapper.selectProjectOrderInfoById(id); + + List projectProductInfos = productInfoService.selectProjectProductInfoListByProjectId(projectOrderInfo.getProjectId()); + Map> productListMap = projectProductInfos.stream().collect(Collectors.groupingBy(ProjectProductInfo::getType)); + projectOrderInfo.setSoftwareProjectProductInfoList(productListMap.get(ProductInfo.ProductTypeEnum.SOFTWARE.getType())); + projectOrderInfo.setHardwareProjectProductInfoList(productListMap.get(ProductInfo.ProductTypeEnum.HARDWARE.getType())); + List maintenanceProjectProductInfoList = productListMap.getOrDefault(ProductInfo.ProductTypeEnum.HARDWARE_MAINTENANCE.getType(), new ArrayList<>()); + maintenanceProjectProductInfoList.addAll(productListMap.getOrDefault(ProductInfo.ProductTypeEnum.SOFTWARE_MAINTENANCE.getType(), new ArrayList<>())); + projectOrderInfo.setMaintenanceProjectProductInfoList(maintenanceProjectProductInfoList); + + List projectOrderFileLogs = fileLogService.listByOrderId(Collections.singletonList(id)); Map> fileLogMap = projectOrderFileLogs.stream().collect(Collectors.groupingBy(ProjectOrderFileLog::getFileType)); @@ -76,9 +85,26 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService { projectOrderInfo.setOrderCode(orderNumber); projectOrderInfo.setCreateTime(DateUtils.getNowDate()); projectOrderInfo.setCreateBy(ShiroUtils.getUserId().toString()); + saveProductInfo(projectOrderInfo); return projectOrderInfoMapper.insertProjectOrderInfo(projectOrderInfo); } + private void saveProductInfo(ProjectOrderInfo projectOrderInfo) { + //插入产品信息 + List projectProductInfoList = projectOrderInfo.getHardwareProjectProductInfoList(); + if (CollUtil.isEmpty(projectProductInfoList)) { + projectProductInfoList = new ArrayList<>(); + } + projectProductInfoList.addAll(CollUtil.isNotEmpty(projectOrderInfo.getSoftwareProjectProductInfoList()) ? projectOrderInfo.getSoftwareProjectProductInfoList() : new ArrayList<>()); + projectProductInfoList.addAll(CollUtil.isNotEmpty(projectOrderInfo.getMaintenanceProjectProductInfoList()) ? projectOrderInfo.getMaintenanceProjectProductInfoList() : new ArrayList<>()); + if (CollUtil.isNotEmpty(projectProductInfoList)) { + for (ProjectProductInfo projectProductInfo : projectProductInfoList) { + projectProductInfo.setProjectId(projectOrderInfo.getId()); + } + productInfoService.saveBatch(projectProductInfoList); + } + } + /** * 生成订单编号 * @@ -122,6 +148,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService { } projectOrderInfo.setUpdateBy(ShiroUtils.getUserId().toString()); projectOrderInfo.setUpdateTime(DateUtils.getNowDate()); + saveProductInfo(projectOrderInfo); return projectOrderInfoMapper.updateProjectOrderInfo(projectOrderInfo); }