xiaofei 1 rok temu
rodzic
commit
9eedcf37ae
20 zmienionych plików z 221 dodań i 25 usunięć
  1. 5 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/obe/RequirementTargetMatrixDto.java
  2. 10 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ObeCourseRequirementMatrix.java
  3. 26 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ObeCultureProgramRequirement.java
  4. 10 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ObeRequirementTargetMatrix.java
  5. 3 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/CultureProgramRequirementEnum.java
  6. 4 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/BasicProfessionalMapper.java
  7. 4 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicProfessionalService.java
  8. 4 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCourseRequirementMatrixService.java
  9. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCultureProgramRequirementService.java
  10. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCultureProgramService.java
  11. 7 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicProfessionalServiceImpl.java
  12. 18 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseRequirementMatrixServiceImpl.java
  13. 15 11
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCultureProgramCourseServiceImpl.java
  14. 39 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCultureProgramRequirementServiceImpl.java
  15. 27 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCultureProgramServiceImpl.java
  16. 28 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCultureProgramTargetServiceImpl.java
  17. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeRequirementTargetMatrixServiceImpl.java
  18. 7 0
      distributed-print-business/src/main/resources/db/log/xiaofei.sql
  19. 1 0
      distributed-print-business/src/main/resources/mapper/ObeCultureProgramCourseMapper.xml
  20. 8 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicProfessionalController.java

+ 5 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/obe/RequirementTargetMatrixDto.java

@@ -7,7 +7,7 @@ import java.util.List;
 public class RequirementTargetMatrixDto extends ObeRequirementTargetMatrix {
 
     private String requirementName;
-    private List<MatrixTargetDto> requirements;
+    private List<MatrixTargetDto> targetList;
 
     public String getRequirementName() {
         return requirementName;
@@ -17,11 +17,11 @@ public class RequirementTargetMatrixDto extends ObeRequirementTargetMatrix {
         this.requirementName = requirementName;
     }
 
-    public List<MatrixTargetDto> getRequirements() {
-        return requirements;
+    public List<MatrixTargetDto> getTargetList() {
+        return targetList;
     }
 
-    public void setRequirements(List<MatrixTargetDto> requirements) {
-        this.requirements = requirements;
+    public void setTargetList(List<MatrixTargetDto> targetList) {
+        this.targetList = targetList;
     }
 }

+ 10 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ObeCourseRequirementMatrix.java

@@ -42,6 +42,16 @@ public class ObeCourseRequirementMatrix extends BaseEntity implements Serializab
     @ApiModelProperty(value = "强度")
     private String intensity;
 
+    public ObeCourseRequirementMatrix() {
+    }
+
+    public ObeCourseRequirementMatrix(Long cultureProgramId, Long obeCourseId, Long obeRequirementId, Long obeSubRequirementId) {
+        this.cultureProgramId = cultureProgramId;
+        this.obeCourseId = obeCourseId;
+        this.obeRequirementId = obeRequirementId;
+        this.obeSubRequirementId = obeSubRequirementId;
+    }
+
     public Long getCultureProgramId() {
         return cultureProgramId;
     }

+ 26 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ObeCultureProgramRequirement.java

@@ -1,12 +1,16 @@
 package com.qmth.distributed.print.business.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 
 import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
 
 import com.qmth.teachcloud.common.base.BaseEntity;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -39,6 +43,20 @@ public class ObeCultureProgramRequirement extends BaseEntity implements Serializ
     @ApiModelProperty(value = "排序值")
     private Integer sortNum;
 
+    @TableField(exist = false)
+    private List<ObeCultureProgramRequirement> subRequirementList = new ArrayList<>();
+
+    public ObeCultureProgramRequirement() {
+    }
+
+    public ObeCultureProgramRequirement(Long cultureProgramId, String code, String name, Long parentId, Integer sortNum) {
+        this.cultureProgramId = cultureProgramId;
+        this.code = code;
+        this.name = name;
+        this.parentId = parentId;
+        this.sortNum = sortNum;
+    }
+
     public Long getCultureProgramId() {
         return cultureProgramId;
     }
@@ -79,6 +97,14 @@ public class ObeCultureProgramRequirement extends BaseEntity implements Serializ
         this.sortNum = sortNum;
     }
 
+    public List<ObeCultureProgramRequirement> getSubRequirementList() {
+        return subRequirementList;
+    }
+
+    public void setSubRequirementList(List<ObeCultureProgramRequirement> subRequirementList) {
+        this.subRequirementList = subRequirementList;
+    }
+
     @Override
     public String toString() {
         return "ObeCultureProgramRequirement{" +

+ 10 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ObeRequirementTargetMatrix.java

@@ -42,6 +42,16 @@ public class ObeRequirementTargetMatrix extends BaseEntity implements Serializab
     @TableField(exist = false)
     private String targetName;
 
+    public ObeRequirementTargetMatrix() {
+    }
+
+    public ObeRequirementTargetMatrix(Long cultureProgramId, Long obeRequirementId, Long obeTargetId) {
+        this.cultureProgramId = cultureProgramId;
+        this.obeRequirementId = obeRequirementId;
+        this.obeTargetId = obeTargetId;
+        this.enable = false;
+    }
+
     public Long getCultureProgramId() {
         return cultureProgramId;
     }

+ 3 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/ProfessionalCertificationEnum.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/CultureProgramRequirementEnum.java

@@ -8,7 +8,7 @@ import java.util.List;
 /**
  * 专业认证毕业要求
  */
-public enum ProfessionalCertificationEnum {
+public enum CultureProgramRequirementEnum {
     GCZS("工程知识"),
     WTFX("问题分析"),
     SJKFJJFA("设计/开发解决方案"),
@@ -22,7 +22,7 @@ public enum ProfessionalCertificationEnum {
     XMGL("项目管理"),
     ZSXX("终身学习");
 
-    ProfessionalCertificationEnum(String name) {
+    CultureProgramRequirementEnum(String name) {
         this.name = name;
     }
 
@@ -37,7 +37,7 @@ public enum ProfessionalCertificationEnum {
      */
     public static List<EnumResult> listTypes() {
         List<EnumResult> list = new ArrayList<EnumResult>();
-        for (ProfessionalCertificationEnum value : ProfessionalCertificationEnum.values()) {
+        for (CultureProgramRequirementEnum value : CultureProgramRequirementEnum.values()) {
             EnumResult result = new EnumResult();
             result.setCode(value.name());
             result.setName(value.getName());

+ 4 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/BasicProfessionalMapper.java

@@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * <p>
  * 专业认证专业表 Mapper 接口
@@ -19,4 +21,6 @@ import org.apache.ibatis.annotations.Param;
 public interface BasicProfessionalMapper extends BaseMapper<BasicProfessional> {
 
     IPage<ProfessionalDto> pageData(@Param("page") Page<ProfessionalDto> page, @Param("schoolId") Long schoolId, @Param("name") String name, @Param("orgId") Long orgId, @Param("dpr") DataPermissionRule dpr);
+
+    List<ProfessionalDto> pageData(@Param("schoolId") Long schoolId, @Param("name") String name, @Param("orgId") Long orgId, @Param("dpr") DataPermissionRule dpr);
 }

+ 4 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicProfessionalService.java

@@ -6,6 +6,8 @@ import com.qmth.distributed.print.business.bean.dto.professional.ProfessionalDto
 import com.qmth.distributed.print.business.entity.BasicProfessional;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * <p>
  * 专业认证专业表 服务类
@@ -16,6 +18,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface BasicProfessionalService extends IService<BasicProfessional> {
 
+    List<ProfessionalDto> listData(String name, Long orgId);
+
     IPage<ProfessionalDto> pageData(Page<ProfessionalDto> page, String name, Long orgId);
 
     Boolean saveData(BasicProfessional tpProfessional);

+ 4 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCourseRequirementMatrixService.java

@@ -3,6 +3,8 @@ package com.qmth.distributed.print.business.service;
 import com.qmth.distributed.print.business.bean.dto.obe.CourseRequirementMatrixDto;
 import com.qmth.distributed.print.business.entity.ObeCourseRequirementMatrix;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.distributed.print.business.entity.ObeCultureProgramCourse;
+import com.qmth.distributed.print.business.entity.ObeCultureProgramRequirement;
 
 import java.util.List;
 
@@ -19,4 +21,6 @@ public interface ObeCourseRequirementMatrixService extends IService<ObeCourseReq
     List<CourseRequirementMatrixDto> getMatrix(Long cultureProgramId);
 
     boolean saveMatrix(List<ObeCourseRequirementMatrix> obeCourseRequirementMatrices);
+
+    void updateMatrix(List<ObeCultureProgramRequirement> obeCultureProgramRequirementList, List<ObeCultureProgramCourse> courseList);
 }

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCultureProgramRequirementService.java

@@ -22,4 +22,6 @@ public interface ObeCultureProgramRequirementService extends IService<ObeCulture
     int getMaxSortNum(Long cultureProgramId, Long parentId);
 
     boolean removeRequirement(Long id);
+
+    void initRequirement(Long cultureProgramId);
 }

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCultureProgramService.java

@@ -23,4 +23,6 @@ public interface ObeCultureProgramService extends IService<ObeCultureProgram> {
     boolean delete(Long id);
 
     boolean copy(Long id);
+
+    ObeCultureProgram getByProfessionalIdAndName(Long professionalId, String name);
 }

+ 7 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicProfessionalServiceImpl.java

@@ -14,6 +14,7 @@ import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * <p>
@@ -29,6 +30,12 @@ public class BasicProfessionalServiceImpl extends ServiceImpl<BasicProfessionalM
     @Resource
     private BasicRoleDataPermissionService basicRoleDataPermissionService;
 
+    @Override
+    public List<ProfessionalDto> listData(String name, Long orgId) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        return this.baseMapper.pageData(schoolId, name, orgId, null);
+    }
+
     @Override
     public IPage<ProfessionalDto> pageData(Page<ProfessionalDto> page, String name, Long orgId) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());

+ 18 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseRequirementMatrixServiceImpl.java

@@ -124,4 +124,22 @@ public class ObeCourseRequirementMatrixServiceImpl extends ServiceImpl<ObeCourse
         }
         return true;
     }
+
+    @Override
+    public void updateMatrix(List<ObeCultureProgramRequirement> obeCultureProgramRequirementList, List<ObeCultureProgramCourse> courseList) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        List<ObeCourseRequirementMatrix> obeCourseRequirementMatrices = new ArrayList<>();
+        for (ObeCultureProgramRequirement obeCultureProgramRequirement : obeCultureProgramRequirementList) {
+            for (ObeCultureProgramRequirement cultureProgramRequirement : obeCultureProgramRequirement.getSubRequirementList()) {
+                for (ObeCultureProgramCourse obeCultureProgramCourse : courseList) {
+                    ObeCourseRequirementMatrix obeCourseRequirementMatrix = new ObeCourseRequirementMatrix(obeCultureProgramRequirement.getCultureProgramId(), obeCultureProgramCourse.getId(), cultureProgramRequirement.getParentId(), cultureProgramRequirement.getId());
+                    obeCourseRequirementMatrix.insertInfo(sysUser.getId());
+                    obeCourseRequirementMatrices.add(obeCourseRequirementMatrix);
+                }
+            }
+        }
+        if (CollectionUtils.isNotEmpty(obeCourseRequirementMatrices)) {
+            this.saveBatch(obeCourseRequirementMatrices);
+        }
+    }
 }

+ 15 - 11
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCultureProgramCourseServiceImpl.java

@@ -6,12 +6,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.bean.params.obe.cultureProgram.ObeCultureProgramCourseParam;
 import com.qmth.distributed.print.business.bean.result.obe.cultureProgram.CultureProgramCourseSelectResult;
 import com.qmth.distributed.print.business.entity.ObeCultureProgramCourse;
+import com.qmth.distributed.print.business.entity.ObeCultureProgramRequirement;
 import com.qmth.distributed.print.business.mapper.ObeCultureProgramCourseMapper;
+import com.qmth.distributed.print.business.service.ObeCourseRequirementMatrixService;
 import com.qmth.distributed.print.business.service.ObeCultureProgramCourseService;
+import com.qmth.distributed.print.business.service.ObeCultureProgramRequirementService;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -34,6 +38,10 @@ public class ObeCultureProgramCourseServiceImpl extends ServiceImpl<ObeCulturePr
 
     @Resource
     private SysOrgService sysOrgService;
+    @Resource
+    private ObeCultureProgramRequirementService obeCultureProgramRequirementService;
+    @Resource
+    private ObeCourseRequirementMatrixService obeCourseRequirementMatrixService;
 
     @Override
     public List<CultureProgramCourseSelectResult> queryList(Long cultureProgramId, Long orgId) {
@@ -68,17 +76,13 @@ public class ObeCultureProgramCourseServiceImpl extends ServiceImpl<ObeCulturePr
             courseList.add(obeCultureProgramCourse);
         });
 
-//        List<TPRequirement> tpRequirementList = tpRequirementService.listRequirement(tpCourseParam.getProfessionalId());
-//        if (CollectionUtils.isNotEmpty(tpRequirementList)) {
-//            // 增加矩阵数据
-//            for (TPCourse tpCourse : tpCourseList) {
-//                for (TPRequirement tpRequirement : tpRequirementList) {
-//                    tpMatrixService.updateMatrixForNodeCount(tpCourse, tpRequirement);
-//                }
-//            }
-//        }
-
-        this.saveBatch(courseList);
+        if(this.saveBatch(courseList)){
+            List<ObeCultureProgramRequirement> obeCultureProgramRequirementList = obeCultureProgramRequirementService.listRequirement(obeCultureProgramCourseParam.getCultureProgramId());
+            if (CollectionUtils.isNotEmpty(obeCultureProgramRequirementList)) {
+                // 增加矩阵数据
+                obeCourseRequirementMatrixService.updateMatrix(obeCultureProgramRequirementList, courseList);
+            }
+        }
         return true;
     }
 

+ 39 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCultureProgramRequirementServiceImpl.java

@@ -4,14 +4,20 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.entity.ObeCultureProgramRequirement;
+import com.qmth.distributed.print.business.enums.CultureProgramRequirementEnum;
 import com.qmth.distributed.print.business.mapper.ObeCultureProgramRequirementMapper;
 import com.qmth.distributed.print.business.service.ObeCultureProgramRequirementService;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -29,7 +35,20 @@ public class ObeCultureProgramRequirementServiceImpl extends ServiceImpl<ObeCult
         QueryWrapper<ObeCultureProgramRequirement> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(ObeCultureProgramRequirement::getCultureProgramId, cultureProgramId)
                 .orderByAsc(ObeCultureProgramRequirement::getSortNum);
-        return this.list(queryWrapper);
+        List<ObeCultureProgramRequirement> obeCultureProgramRequirementList = this.list(queryWrapper);
+
+        List<ObeCultureProgramRequirement> obeCultureProgramRequirements = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(obeCultureProgramRequirementList)) {
+            Map<Long, ObeCultureProgramRequirement> obeCultureProgramRequirementMap = obeCultureProgramRequirementList.stream().filter(obeCultureProgramRequirement -> obeCultureProgramRequirement.getParentId() == null).collect(Collectors.toMap(ObeCultureProgramRequirement::getId, obeCultureProgramRequirement -> obeCultureProgramRequirement));
+            for (ObeCultureProgramRequirement obeCultureProgramRequirement : obeCultureProgramRequirementList) {
+                if (obeCultureProgramRequirement.getParentId() != null) {
+                    obeCultureProgramRequirementMap.get(obeCultureProgramRequirement.getParentId()).getSubRequirementList().add(obeCultureProgramRequirement);
+                }
+            }
+            obeCultureProgramRequirements = obeCultureProgramRequirementMap.values().stream().collect(Collectors.toList());
+            obeCultureProgramRequirements.sort(Comparator.comparingInt(ObeCultureProgramRequirement::getSortNum));
+        }
+        return obeCultureProgramRequirements;
     }
 
     @Override
@@ -79,4 +98,23 @@ public class ObeCultureProgramRequirementServiceImpl extends ServiceImpl<ObeCult
 //        tpMatrixService.removeMatrixByCondition(null, null, id);
         return this.removeById(id);
     }
+
+    @Transactional
+    @Override
+    public void initRequirement(Long cultureProgramId) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        List<ObeCultureProgramRequirement> obeCultureProgramRequirementList = new ArrayList<>();
+        for (CultureProgramRequirementEnum value : CultureProgramRequirementEnum.values()) {
+            // 一级节点
+            ObeCultureProgramRequirement obeCultureProgramRequirement = new ObeCultureProgramRequirement(cultureProgramId, value.name(), value.getName(), null, value.ordinal() + 1);
+            obeCultureProgramRequirement.insertInfo(sysUser.getId());
+            obeCultureProgramRequirementList.add(obeCultureProgramRequirement);
+            // 每个一级节点默认创建一个二级节点
+            ObeCultureProgramRequirement obeSubCultureProgramRequirement = new ObeCultureProgramRequirement(cultureProgramId, null, "指标点" + obeCultureProgramRequirement.getSortNum() + "-1", obeCultureProgramRequirement.getId(), 1);
+            obeSubCultureProgramRequirement.insertInfo(sysUser.getId());
+            obeCultureProgramRequirementList.add(obeSubCultureProgramRequirement);
+        }
+
+        this.saveBatch(obeCultureProgramRequirementList);
+    }
 }

+ 27 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCultureProgramServiceImpl.java

@@ -1,14 +1,18 @@
 package com.qmth.distributed.print.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.bean.result.obe.cultureProgram.CultureProgramResult;
 import com.qmth.distributed.print.business.entity.ObeCultureProgram;
+import com.qmth.distributed.print.business.entity.ObeCultureProgramRequirement;
 import com.qmth.distributed.print.business.mapper.ObeCultureProgramMapper;
+import com.qmth.distributed.print.business.service.ObeCultureProgramRequirementService;
 import com.qmth.distributed.print.business.service.ObeCultureProgramService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
@@ -27,6 +31,8 @@ import javax.annotation.Resource;
 @Service
 public class ObeCultureProgramServiceImpl extends ServiceImpl<ObeCultureProgramMapper, ObeCultureProgram> implements ObeCultureProgramService {
 
+    @Resource
+    private ObeCultureProgramRequirementService obeCultureProgramRequirementService;
     @Resource
     private BasicRoleDataPermissionService basicRoleDataPermissionService;
 
@@ -41,13 +47,24 @@ public class ObeCultureProgramServiceImpl extends ServiceImpl<ObeCultureProgramM
     @Override
     public boolean saveData(ObeCultureProgram obeCultureProgram) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+
+        ObeCultureProgram checkObeCultureProgram = this.getByProfessionalIdAndName(obeCultureProgram.getProfessionalId(), obeCultureProgram.getName());
         if (obeCultureProgram.getId() == null) {
+            if (checkObeCultureProgram != null) {
+                throw ExceptionResultEnum.ERROR.exception("培养方案名称已存在");
+            }
             obeCultureProgram.insertInfo(sysUser.getId());
+             if(this.save(obeCultureProgram)){
+                 obeCultureProgramRequirementService.initRequirement(obeCultureProgram.getId());
+             }
+             return true;
         } else {
+            if (checkObeCultureProgram != null && !checkObeCultureProgram.getId().equals(obeCultureProgram.getId())) {
+                throw ExceptionResultEnum.ERROR.exception("培养方案名称已存在");
+            }
             obeCultureProgram.updateInfo(sysUser.getId());
-            this.updateById(obeCultureProgram);
+            return this.updateById(obeCultureProgram);
         }
-        return this.saveOrUpdate(obeCultureProgram);
     }
 
     @Override
@@ -60,4 +77,12 @@ public class ObeCultureProgramServiceImpl extends ServiceImpl<ObeCultureProgramM
     public boolean copy(Long id) {
         return false;
     }
+
+    @Override
+    public ObeCultureProgram getByProfessionalIdAndName(Long professionalId, String name) {
+        QueryWrapper<ObeCultureProgram> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ObeCultureProgram::getProfessionalId, professionalId)
+                .eq(ObeCultureProgram::getName, name);
+        return this.getOne(queryWrapper);
+    }
 }

+ 28 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCultureProgramTargetServiceImpl.java

@@ -1,15 +1,26 @@
 package com.qmth.distributed.print.business.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.qmth.distributed.print.business.entity.ObeCourseRequirementMatrix;
+import com.qmth.distributed.print.business.entity.ObeCultureProgramRequirement;
 import com.qmth.distributed.print.business.entity.ObeCultureProgramTarget;
+import com.qmth.distributed.print.business.entity.ObeRequirementTargetMatrix;
 import com.qmth.distributed.print.business.mapper.ObeCultureProgramTargetMapper;
+import com.qmth.distributed.print.business.service.ObeCultureProgramRequirementService;
 import com.qmth.distributed.print.business.service.ObeCultureProgramTargetService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.distributed.print.business.service.ObeRequirementTargetMatrixService;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.ResponseBody;
 
+import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -22,6 +33,11 @@ import java.util.List;
 @Service
 public class ObeCultureProgramTargetServiceImpl extends ServiceImpl<ObeCultureProgramTargetMapper, ObeCultureProgramTarget> implements ObeCultureProgramTargetService {
 
+    @Resource
+    private ObeCultureProgramRequirementService obeCultureProgramRequirementService;
+    @Resource
+    private ObeRequirementTargetMatrixService obeRequirementTargetMatrixService;
+
     @Override
     public List<ObeCultureProgramTarget> list(Long cultureProgramId) {
         QueryWrapper<ObeCultureProgramTarget> queryWrapper = new QueryWrapper<>();
@@ -30,16 +46,26 @@ public class ObeCultureProgramTargetServiceImpl extends ServiceImpl<ObeCulturePr
         return this.list(queryWrapper);
     }
 
+    @Transactional
     @Override
     public boolean saveData(ObeCultureProgramTarget obeCultureProgramTarget) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         if (obeCultureProgramTarget.getId() == null) {
             obeCultureProgramTarget.insertInfo(sysUser.getId());
+
+            // 同时生成培养目标与毕业要求关系矩阵数据
+            if (this.save(obeCultureProgramTarget)) {
+                List<ObeCultureProgramRequirement> obeCultureProgramRequirementList = obeCultureProgramRequirementService.listRequirement(obeCultureProgramTarget.getCultureProgramId());
+                List<ObeRequirementTargetMatrix> obeRequirementTargetMatrixList = obeCultureProgramRequirementList.stream().map(m -> new ObeRequirementTargetMatrix(obeCultureProgramTarget.getCultureProgramId(), m.getId(), obeCultureProgramTarget.getId())).collect(Collectors.toList());
+                if (CollectionUtils.isNotEmpty(obeRequirementTargetMatrixList)) {
+                    obeRequirementTargetMatrixService.saveBatch(obeRequirementTargetMatrixList);
+                }
+            }
+            return true;
         } else {
             obeCultureProgramTarget.updateInfo(sysUser.getId());
-            this.updateById(obeCultureProgramTarget);
+            return this.updateById(obeCultureProgramTarget);
         }
-        return this.saveOrUpdate(obeCultureProgramTarget);
     }
 
     @Override

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeRequirementTargetMatrixServiceImpl.java

@@ -48,7 +48,7 @@ public class ObeRequirementTargetMatrixServiceImpl extends ServiceImpl<ObeRequir
                     matrixRequirementDto.setEnable(m.getEnable());
                     return matrixRequirementDto;
                 }).sorted(Comparator.comparingLong(o -> o.getCreateTime())).collect(Collectors.toList());
-                requirementTargetMatrixDto.setRequirements(matrixTargetDtoList);
+                requirementTargetMatrixDto.setTargetList(matrixTargetDtoList);
                 matrixDtoList.add(requirementTargetMatrixDto);
             });
         }

+ 7 - 0
distributed-print-business/src/main/resources/db/log/xiaofei.sql

@@ -98,3 +98,10 @@ INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('2064', '删除', 'Delete', 'LINK', '2036', '10', 'AUTH', '2065', '1', '0', '1');
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('2065', '删除', '/api/admin/obe/culture/program/remove', 'URL', '2036', '19', 'AUTH', '1', '1', '1');
 UPDATE `sys_privilege` SET `name` = '达成度分析' WHERE (`id` = '2000');
+
+-- 2024-06-07
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('540', '查询(不分页)', '/api/admin/basic/professional/list', 'URL', '515', '4', 'AUTH', '1', '1', '1');
+UPDATE `sys_privilege` SET `related` = '536,540' WHERE (`id` = '519');
+UPDATE `sys_privilege` SET `related` = '536,540' WHERE (`id` = '520');
+UPDATE `sys_privilege` SET `related` = '536,540' WHERE (`id` = '522');
+UPDATE `sys_privilege` SET `related` = '2042,540' WHERE (`id` = '2038');

+ 1 - 0
distributed-print-business/src/main/resources/mapper/ObeCultureProgramCourseMapper.xml

@@ -18,6 +18,7 @@
     <select id="queryList"
             resultType="com.qmth.distributed.print.business.bean.result.obe.cultureProgram.CultureProgramCourseSelectResult">
         SELECT
+            bc.id courseId,
             bc.code courseCode,
             bc.name courseName,
             bc.teaching_room_id orgId,

+ 8 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicProfessionalController.java

@@ -32,6 +32,14 @@ public class BasicProfessionalController {
     @Resource
     private BasicProfessionalService basicProfessionalService;
 
+    @ApiOperation(value = "查询(不分页)")
+    @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "分页查询", response = ProfessionalDto.class)})
+    public Result list(@ApiParam(value = "专业名称") @RequestParam(required = false) String name,
+                       @ApiParam(value = "所属学院") @RequestParam(required = false) Long orgId) {
+        return ResultUtil.ok(basicProfessionalService.listData(name, orgId));
+    }
+
     @ApiOperation(value = "查询")
     @RequestMapping(value = "/page", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "分页查询", response = ProfessionalDto.class)})