diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java index 46058eaca..c943984bf 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java @@ -77,6 +77,20 @@ public class ProjectLibraryBaseController extends JeroController addChild(@Validated @RequestBody ProjectLibraryBase projectLibraryBase) throws ParseException { + projectLibraryBaseService.addChild(projectLibraryBase); + return Result.OK("添加成功!"); + } /** * 编辑 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java index b5eeb4c7e..8fe663fd7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java @@ -109,4 +109,18 @@ public class ProjectLibraryBase implements Serializable { /**目标市场展示名称*/ @TableField(exist = false) private java.lang.String targetMarketName; + + //主项目id parent_id + private String parentId; + + //排序 + private String projectVersion; + + //最后一个版本 + @TableField(exist = false) + private String versionLast; + + //说明 + private String explanation; + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java index f6f29e54c..0168cf5db 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java @@ -26,6 +26,14 @@ public interface IProjectLibraryBaseService extends IService */ void add(ProjectLibraryBase projectLibraryBase) throws ParseException; + /** + * 项目扩展(添加子项目-子项目基本信息、相关人员名单、法规/认证任务计划与被扩展项目保持一致) + * + * @param projectLibraryBase + * @return + */ + void addChild(ProjectLibraryBase projectLibraryBase) throws ParseException; + /** * 更新 * diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index 583d26a56..f5a90ed15 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -1,6 +1,6 @@ package com.jero.modules.project.service.impl; -import cn.hutool.core.lang.func.Func1; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -11,9 +11,26 @@ import com.jero.common.system.vo.DictModel; import com.jero.common.system.vo.LoginUser; import com.jero.modules.cert.collect.service.IParamsManifestEOService; import com.jero.modules.enums.DictCodeEnum; -import com.jero.modules.project.entity.*; -import com.jero.modules.project.enums.*; -import com.jero.modules.project.mapper.*; +import com.jero.modules.project.entity.ConditionAssessmentEO; +import com.jero.modules.project.entity.ProjectLawsInventoryEO; +import com.jero.modules.project.entity.ProjectLawsInventoryLogEO; +import com.jero.modules.project.entity.ProjectLibraryBase; +import com.jero.modules.project.entity.ProjectLibraryRoleRelEO; +import com.jero.modules.project.entity.ProjectRelatedPersonnel; +import com.jero.modules.project.entity.ProjectTaskInventoryEO; +import com.jero.modules.project.entity.ProjectTaskPlanning; +import com.jero.modules.project.enums.CertificationProgressEnum; +import com.jero.modules.project.enums.CurrentProjectStatusEnum; +import com.jero.modules.project.enums.DesignComplianceStatusEnum; +import com.jero.modules.project.enums.InventoryAffirmStatusEnum; +import com.jero.modules.project.enums.OperatorTypeEnum; +import com.jero.modules.project.enums.ProjectRoleEnum; +import com.jero.modules.project.enums.TaskAffirmStatusEnum; +import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper; +import com.jero.modules.project.mapper.ProjectLibraryBaseMapper; +import com.jero.modules.project.mapper.ProjectNameInfoEOMapper; +import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper; +import com.jero.modules.project.mapper.ProjectTaskInventoryEOMapper; import com.jero.modules.project.service.IConditionAssessmentEOService; import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.project.service.IProjectLibraryRoleRelEOService; @@ -26,6 +43,7 @@ import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import com.jero.modules.system.util.StringUtils; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; @@ -33,6 +51,7 @@ import org.apache.poi.ss.usermodel.Row; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; @@ -40,7 +59,13 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; import java.util.stream.Collectors; /** @@ -131,6 +156,62 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl projectRelatedPersonnelList = projectRelatedPersonnelMapper.queryPageList(id, + DictCodeEnum.DUTY_TERRITORY.getValue(), + null, + null, + null, + null); + if(projectRelatedPersonnelList.size() != 0){ + for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnelList) { + projectRelatedPersonnel.setId(UUID.randomUUID().toString().replace("-", "")); + projectRelatedPersonnel.setProjectId(projectId); + } + projectRelatedPersonnelService.saveBatch(projectRelatedPersonnelList); + } + + //法规/认证任务计划添加数据 projectTaskPlanningService + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(ProjectTaskPlanning::getProjectId,projectLibraryBase.getId()); + ProjectTaskPlanning projectTaskPlanning = projectTaskPlanningService.getOne(wrapper); + if(ObjectUtils.isNotEmpty(projectTaskPlanning)){ + projectTaskPlanning.setId(UUID.randomUUID().toString().replace("-", "")); + projectTaskPlanning.setProjectId(projectId); + projectTaskPlanningService.add(projectTaskPlanning); + } + + + //初始化当前项目的studio与项目库 角色关系 projectLibraryRoleRelEOService + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(ProjectLibraryRoleRelEO::getProjectLibraryId,projectLibraryBase.getId()); + ProjectLibraryRoleRelEO projectLibraryRoleRelEO = projectLibraryRoleRelEOService.getOne(queryWrapper); + if(ObjectUtils.isNotEmpty(projectLibraryRoleRelEO)){ + projectLibraryRoleRelEO.setId(UUID.randomUUID().toString().replace("-", "")); + projectLibraryRoleRelEO.setProjectLibraryId(projectId); + projectLibraryRoleRelEOService.add(projectLibraryRoleRelEO); + } + } + /**检查车型名称id,年款号,目标市场同时存在,报错*/ public void checkExitData(ProjectLibraryBase projectLibraryBase){