From 3134991a6c9315421ff3d4b3b4f1bd76bb5dbdc9 Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: Tue, 28 Apr 2026 17:01:08 +0800
Subject: [PATCH] 复制功能
---
multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityServiceImpl.java | 135 +++++++++++++++++++++++++-
multi-system/src/main/java/com/gkhy/exam/system/service/QualityService.java | 2
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/EnvironmentDemandRiskController.java | 12 ++
multi-system/src/main/java/com/gkhy/exam/system/service/ExpectEvaluateService.java | 3
multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectDiscrenServiceImpl.java | 92 ++++++++++++++++++
multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectEvaluateServiceImpl.java | 1
multi-system/src/main/java/com/gkhy/exam/system/service/ExpectDiscrenService.java | 3
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityController.java | 13 ++
8 files changed, 252 insertions(+), 9 deletions(-)
diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/EnvironmentDemandRiskController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/EnvironmentDemandRiskController.java
index a908e25..189f5c0 100644
--- a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/EnvironmentDemandRiskController.java
+++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/EnvironmentDemandRiskController.java
@@ -155,6 +155,18 @@
}
+ @ApiOperation(value = "相关方需求和期望识别~评价复制")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "long", required = false, value = "公司id"),
+ @ApiImplicitParam(paramType = "query", name = "sourceYear", dataType = "String", required = true, value = "资源年份"),
+ @ApiImplicitParam(paramType = "query", name = "sourceMonth", dataType = "targetYear", required = true, value = "目标年份"),
+ })
+ @GetMapping("/expect/discren/copyExpectDiscren")
+ public CommonResult copyExpectDiscren(Long companyId,@RequestParam("sourceYear") String sourceYear, @RequestParam("targetYear")String targetYear){
+ return expectDiscrenService.copyExpectDiscren(companyId,sourceYear,targetYear);
+ }
+
+
/**
* 相关方需求识别新增
* @param expectDiscren
diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityController.java
index 3fa5fbb..41e6a99 100644
--- a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityController.java
+++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityController.java
@@ -66,7 +66,16 @@
public CommonResult listQualityAll(Quality quality){
return CommonResult.success(qualityService.selectQualityListAll(quality));
}
-
+ @ApiOperation(value = "质量目标等复制")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "long", required = false, value = "公司id"),
+ @ApiImplicitParam(paramType = "query", name = "sourceYear", dataType = "String", required = true, value = "资源年份"),
+ @ApiImplicitParam(paramType = "query", name = "sourceMonth", dataType = "targetYear", required = true, value = "目标年份"),
+ })
+ @GetMapping("/policy/copyQuality")
+ public CommonResult copyQuality(Long companyId,@RequestParam("sourceYear") String sourceYear, @RequestParam("targetYear")String targetYear){
+ return qualityService.copyQuality(companyId,sourceYear,targetYear);
+ }
/**
* 质量目标新增
* @param qualityTargetReq
@@ -164,6 +173,8 @@
return CommonResult.success(qualityAccomplishService.selectQualityAccomplishList(qualityReq));
}
+
+
/**
* 质量目标完成情况新增
* @param qualityAccomplish
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/ExpectDiscrenService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/ExpectDiscrenService.java
index c631c10..c7bd8d3 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/ExpectDiscrenService.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/ExpectDiscrenService.java
@@ -16,4 +16,7 @@
CommonResult selectExpectDiscrenListAll(ExpectDiscren expectDiscren);
+
+ CommonResult copyExpectDiscren(Long companyId,String sourceYear,String targetYear);
+
}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/ExpectEvaluateService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/ExpectEvaluateService.java
index 9abab27..1bb3b26 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/ExpectEvaluateService.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/ExpectEvaluateService.java
@@ -13,4 +13,7 @@
CommonResult updateExpectEvaluate(ExpectEvaluate expectEvaluate);
CommonResult deletedExpectEvaluate(Integer expectEvaluateId);
+
+
+
}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/QualityService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/QualityService.java
index 33b053a..a6fe458 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/QualityService.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/QualityService.java
@@ -16,4 +16,6 @@
CommonResult deletedQuality(Integer qualityId);
CommonResult selectQualityListAll(Quality quality);
+
+ CommonResult copyQuality(Long companyId,String sourceYear,String targetYear);
}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectDiscrenServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectDiscrenServiceImpl.java
index fec0d0c..588ae22 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectDiscrenServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectDiscrenServiceImpl.java
@@ -1,5 +1,8 @@
package com.gkhy.exam.system.service.impl;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
@@ -9,8 +12,10 @@
import com.gkhy.exam.system.domain.ExpectContent;
import com.gkhy.exam.system.domain.ExpectContentMess;
import com.gkhy.exam.system.domain.ExpectDiscren;
+import com.gkhy.exam.system.domain.ExpectEvaluate;
import com.gkhy.exam.system.mapper.ExpectContentMapper;
import com.gkhy.exam.system.mapper.ExpectDiscrenMapper;
+import com.gkhy.exam.system.mapper.ExpectEvaluateMapper;
import com.gkhy.exam.system.service.ExpectDiscrenService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -28,6 +33,9 @@
@Autowired
private ExpectContentMapper expectContentMapper;
+
+ @Autowired
+ private ExpectEvaluateMapper expectEvaluateMapper;
@Override
@@ -125,4 +133,88 @@
}
return CommonResult.success(expectDiscrens);
}
+
+ @Override
+ @Transactional
+ public CommonResult copyExpectDiscren(Long companyId,String sourceYear, String targetYear) {
+ if (companyId==null){
+ companyId = SecurityUtils.getCompanyId();
+ }
+ LambdaQueryWrapper<ExpectDiscren> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(ExpectDiscren::getCompanyId, companyId)
+ .eq(ExpectDiscren::getDelFlag, 1).eq(ExpectDiscren::getYear, targetYear);
+ List<ExpectDiscren> expectDiscrensTarget = expectDiscrenMapper.selectList(queryWrapper);
+ if (ObjectUtil.isNotEmpty(expectDiscrensTarget)){
+ for (ExpectDiscren expectDiscren : expectDiscrensTarget) {
+ deletedExpectDiscren(expectDiscren.getId());
+ LambdaQueryWrapper<ExpectContent> queryWrapperContent = new LambdaQueryWrapper<>();
+ queryWrapperContent.eq(ExpectContent::getExpectDiscrenId, expectDiscren.getId());
+ List<ExpectContent> expectContents = expectContentMapper.selectList(queryWrapperContent);
+ expectContentMapper.deletedByDiscrenId(expectDiscren.getId());
+ if (ObjectUtil.isNotEmpty(expectContents)){
+ expectContentMapper.deletedByConentId(expectDiscren.getId());
+ }
+
+ LambdaUpdateWrapper<ExpectEvaluate> updateWrapper = new LambdaUpdateWrapper<>();
+ updateWrapper.set(ExpectEvaluate::getDelFlag, 2).set(ExpectEvaluate::getUpdateBy, SecurityUtils.getUsername())
+ .eq(ExpectEvaluate::getUpdateTime, LocalDateTime.now()).eq(ExpectEvaluate::getExpectDiscrenId, expectDiscren.getId());
+ expectEvaluateMapper.update(new ExpectEvaluate(), updateWrapper);
+ }
+ }
+
+ LambdaQueryWrapper<ExpectDiscren> queryWrapperSource = new LambdaQueryWrapper<>();
+ queryWrapperSource.eq(ExpectDiscren::getCompanyId, companyId)
+ .eq(ExpectDiscren::getDelFlag, 1).eq(ExpectDiscren::getYear, sourceYear);
+ List<ExpectDiscren> expectDiscrens = expectDiscrenMapper.selectList(queryWrapperSource);
+ if (ObjectUtil.isEmpty(expectDiscrens)){
+ return CommonResult.success("无相关数据");
+ }
+ for (ExpectDiscren expectDiscren : expectDiscrens) {
+ Integer oldId = expectDiscren.getId();
+ expectDiscren.setId(null);
+ expectDiscren.setYear(targetYear);
+ expectDiscren.setCreateBy(SecurityUtils.getUsername());
+ expectDiscren.setCreateTime(LocalDateTime.now());
+ expectDiscren.setUpdateBy(SecurityUtils.getUsername());
+ expectDiscren.setUpdateTime(LocalDateTime.now());
+ expectDiscren.setFictionTime(LocalDateTime.now());
+ expectDiscrenMapper.insert(expectDiscren);
+ List<ExpectContent> expectContents = expectContentMapper.selectByDiscrenId(oldId);
+ if (ObjectUtil.isNotEmpty(expectContents)){
+ for (ExpectContent expectContent : expectContents) {
+ List<ExpectContentMess> expectContentMesses = expectContentMapper.selectByContentId(expectContent.getId());
+ expectContent.setId(null);
+ expectContent.setExpectDiscrenId(expectDiscren.getId());
+ expectContentMapper.insert(expectContent);
+
+ if (ObjectUtil.isNotEmpty(expectContentMesses)){
+ for (ExpectContentMess expectContentMess : expectContentMesses) {
+ expectContentMess.setId(null);
+ expectContentMess.setExpectContentId(expectContent.getId());
+ }
+ expectContentMapper.insertContentMess(expectContentMesses);
+ }
+
+ }
+ }
+
+ LambdaQueryWrapper<ExpectEvaluate> queryWrapper1 = new LambdaQueryWrapper<>();
+ queryWrapper1.eq(ExpectEvaluate::getExpectDiscrenId, oldId).eq(ExpectEvaluate::getDelFlag, 1);
+ List<ExpectEvaluate> expectEvaluates = expectEvaluateMapper.selectList(queryWrapper1);
+ if (ObjectUtil.isNotEmpty(expectEvaluates)){
+ for (ExpectEvaluate expectEvaluate : expectEvaluates) {
+ expectEvaluate.setId(null);
+ expectEvaluate.setExpectDiscrenId(expectDiscren.getId());
+ expectEvaluate.setCreateBy(SecurityUtils.getUsername());
+ expectEvaluate.setCreateTime(LocalDateTime.now());
+ expectEvaluate.setUpdateBy(SecurityUtils.getUsername());
+ expectEvaluate.setUpdateTime(LocalDateTime.now());
+ expectEvaluate.setEvaluateTime(LocalDateTime.now());
+ expectEvaluateMapper.insert(expectEvaluate);
+ }
+ }
+
+ }
+ return CommonResult.success();
+ }
}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectEvaluateServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectEvaluateServiceImpl.java
index 52a9f15..7e31a11 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectEvaluateServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectEvaluateServiceImpl.java
@@ -90,4 +90,5 @@
expectEvaluateMapper.updateById(expectEvaluate);
return CommonResult.success();
}
+
}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityServiceImpl.java
index c51f153..19bc034 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityServiceImpl.java
@@ -1,5 +1,8 @@
package com.gkhy.exam.system.service.impl;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
@@ -8,21 +11,16 @@
import com.gkhy.exam.common.exception.ApiException;
import com.gkhy.exam.common.utils.PageUtils;
import com.gkhy.exam.common.utils.SecurityUtils;
-import com.gkhy.exam.system.domain.Quality;
-import com.gkhy.exam.system.domain.QualityTarget;
-import com.gkhy.exam.system.domain.QualityTargetMess;
-import com.gkhy.exam.system.domain.SysCompany;
+import com.gkhy.exam.system.domain.*;
import com.gkhy.exam.system.domain.req.QualityTargetReq;
import com.gkhy.exam.system.domain.vo.QualityTargetVo;
-import com.gkhy.exam.system.mapper.QualityDecomposeMapper;
-import com.gkhy.exam.system.mapper.QualityMapper;
-import com.gkhy.exam.system.mapper.QualityTargetMapper;
-import com.gkhy.exam.system.mapper.SysDeptMapper;
+import com.gkhy.exam.system.mapper.*;
import com.gkhy.exam.system.service.QualityService;
import com.gkhy.exam.system.service.SysCompanyService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
@@ -40,6 +38,8 @@
private SysCompanyService sysCompanyService;
@Autowired
private SysDeptMapper sysDeptMapper;
+ @Autowired
+ private QualityAccomplishMapper qualityAccomplishMapper;
@Override
public CommonPage selectQualityList(Quality quality) {
@@ -147,4 +147,123 @@
}
return CommonResult.success(qualityTargetVos);
}
+
+ @Override
+ @Transactional
+ public CommonResult copyQuality(Long companyId, String sourceYear, String targetYear) {
+ if (companyId == null){
+ companyId = SecurityUtils.getCompanyId();
+ }
+
+ LambdaQueryWrapper<Quality> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(Quality::getCompanyId,companyId)
+ .eq(Quality::getYear,targetYear).eq(Quality::getDelFlag,1);
+ List<Quality> qualitys = qualityMapper.selectList(queryWrapper);
+ if (ObjectUtil.isNotEmpty(qualitys)){
+ for (Quality quality : qualitys) {
+ deletedQuality(quality.getId());
+ LambdaQueryWrapper<QualityTarget> queryWrapper1 = new LambdaQueryWrapper<>();
+ queryWrapper1.eq(QualityTarget::getQualityId,quality.getId()).eq(QualityTarget::getDelFlag,1);
+ List<QualityTarget> qualityTargets = qualityTargetMapper.selectList(queryWrapper1);
+ qualityTargetMapper.deleteByQualityIds(quality.getId());
+ if (ObjectUtil.isNotEmpty(qualityTargets)){
+ qualityTargetMapper.deletedByQualityTargetId(quality.getId());
+ }
+ LambdaUpdateWrapper<QualityDecompose> updateWrapper = new LambdaUpdateWrapper<>();
+ updateWrapper.eq(QualityDecompose::getQualityId,quality.getId()).eq(QualityDecompose::getDelFlag,1)
+ .set(QualityDecompose::getDelFlag,2).set(QualityDecompose::getUpdateTime,LocalDateTime.now())
+ .set(QualityDecompose::getUpdateBy,SecurityUtils.getUsername());
+ qualityDecomposeMapper.update(new QualityDecompose(),updateWrapper);
+ LambdaUpdateWrapper<QualityAccomplish> updateWrapper1 = new LambdaUpdateWrapper<>();
+ updateWrapper1.eq(QualityAccomplish::getQualityId,quality.getId()).eq(QualityAccomplish::getDelFlag,1)
+ .set(QualityAccomplish::getDelFlag,2).set(QualityAccomplish::getUpdateTime,LocalDateTime.now())
+ .set(QualityAccomplish::getUpdateBy,SecurityUtils.getUsername());
+ qualityAccomplishMapper.update(new QualityAccomplish(),updateWrapper1);
+ }
+ }
+ LambdaQueryWrapper<Quality> queryWrapperSource = new LambdaQueryWrapper<>();
+ queryWrapperSource.eq(Quality::getCompanyId,companyId)
+ .eq(Quality::getYear,sourceYear).eq(Quality::getDelFlag,1);
+
+ List<Quality> qualitys1 = qualityMapper.selectList(queryWrapperSource);
+ if (ObjectUtil.isNotEmpty(qualitys1)){
+
+ for (Quality quality : qualitys1) {
+ Integer oldId = quality.getId();
+ quality.setId( null);
+ quality.setYear(targetYear);
+ quality.setCreateBy(SecurityUtils.getUsername());
+ quality.setCreateTime(LocalDateTime.now());
+ quality.setUpdateBy(SecurityUtils.getUsername());
+ quality.setUpdateTime(LocalDateTime.now());
+ quality.setDelFlag(1);
+ quality.setCompilationTime(LocalDateTime.now());
+ quality.setQualityTime(LocalDateTime.now());
+ qualityMapper.insert(quality);
+ List<QualityTarget> qualityTargets = qualityTargetMapper.selectByQualityId(oldId);
+ if (ObjectUtil.isNotEmpty(qualityTargets)){
+ for (QualityTarget qualityTarget : qualityTargets) {
+ List<QualityTargetMess> qualityTargetMesses = qualityTargetMapper.selectBYQualityTargetId(qualityTarget.getId());
+ qualityTarget.setId(null);
+ qualityTarget.setQualityId(quality.getId());
+ qualityTarget.setCreateBy(SecurityUtils.getUsername());
+ qualityTarget.setCreateTime(LocalDateTime.now());
+ qualityTarget.setUpdateBy(SecurityUtils.getUsername());
+ qualityTarget.setUpdateTime(LocalDateTime.now());
+ qualityTargetMapper.insert(qualityTarget);
+
+ if (ObjectUtil.isNotEmpty(qualityTargetMesses)){
+ for (QualityTargetMess qualityTargetMess : qualityTargetMesses) {
+ qualityTargetMess.setId(null);
+ qualityTargetMess.setQualityTargetId(qualityTarget.getId());
+ }
+ qualityTargetMapper.insertQualityTargetMess(qualityTargetMesses);
+ }
+ }
+ }
+
+ LambdaQueryWrapper<QualityDecompose> queryWrapper1 = new LambdaQueryWrapper<>();
+ queryWrapper1.eq(QualityDecompose::getQualityId,oldId).eq(QualityDecompose::getDelFlag,1);
+ List<QualityDecompose> qualityDecomposes = qualityDecomposeMapper.selectList(queryWrapper1);
+ if (ObjectUtil.isNotEmpty(qualityDecomposes)){
+ for (QualityDecompose qualityDecompose : qualityDecomposes) {
+ qualityDecompose.setId(null);
+ qualityDecompose.setQualityId(quality.getId());
+ qualityDecompose.setCreateBy(SecurityUtils.getUsername());
+ qualityDecompose.setCreateTime(LocalDateTime.now());
+ qualityDecompose.setUpdateBy(SecurityUtils.getUsername());
+ qualityDecompose.setUpdateTime(LocalDateTime.now());
+ qualityDecompose.setDelFlag(1);
+ qualityDecompose.setCheckTime(LocalDateTime.now());
+ qualityDecompose.setRatifyTime(LocalDateTime.now());
+ qualityDecomposeMapper.insert(qualityDecompose);
+ }
+ }
+
+ LambdaQueryWrapper<QualityAccomplish> queryWrapper2 = new LambdaQueryWrapper<>();
+ queryWrapper2.eq(QualityAccomplish::getQualityId,oldId).eq(QualityAccomplish::getDelFlag,1);
+ List<QualityAccomplish> qualityAccomplishes = qualityAccomplishMapper.selectList(queryWrapper2);
+ if (ObjectUtil.isNotEmpty(qualityAccomplishes)){
+ for (QualityAccomplish qualityAccomplish : qualityAccomplishes) {
+ qualityAccomplish.setId(null);
+ qualityAccomplish.setQualityId(quality.getId());
+ qualityAccomplish.setCreateBy(SecurityUtils.getUsername());
+ qualityAccomplish.setCreateTime(LocalDateTime.now());
+ qualityAccomplish.setUpdateBy(SecurityUtils.getUsername());
+ qualityAccomplish.setUpdateTime(LocalDateTime.now());
+ qualityAccomplish.setDelFlag(1);
+ qualityAccomplish.setChargeTime(LocalDateTime.now());
+ qualityAccomplishMapper.insert(qualityAccomplish);
+ }
+ }
+
+ }
+
+
+
+ }
+
+
+ return CommonResult.success();
+ }
}
--
Gitblit v1.9.2