yangshun 2 тижнів тому
батько
коміт
07109d9048

+ 5 - 5
guoyan-framework/guoyan-spring-boot-starter-web/src/main/java/com/cy/guoyan/admin/framework/web/config/GuoyanWebAutoConfiguration.java

@@ -62,11 +62,11 @@ public class GuoyanWebAutoConfiguration implements WebMvcConfigurer {
         configurePathMatch(configurer, webProperties.getAppApi());
     }
 
-//    @Override
-//    public void addResourceHandlers(ResourceHandlerRegistry registry) {
-//        String fileSavePathUri = "file:" + fileUploadDir.replace("\\", "/");
-//        registry.addResourceHandler(fileAccessPath).addResourceLocations(fileSavePathUri);
-//    }
+    @Override
+    public void addResourceHandlers(ResourceHandlerRegistry registry) {
+        String fileSavePathUri = "file:" + fileUploadDir.replace("\\", "/");
+        registry.addResourceHandler(fileAccessPath).addResourceLocations(fileSavePathUri);
+    }
 
     /**
      * 设置 API 前缀,仅仅匹配 controller 包下的

+ 4 - 4
guoyan-module-system/src/main/java/com/cy/guoyan/admin/module/guoyan/controller/admin/stateownedreformlawinfo/vo/StateOwnedReformLawInfoSaveReqVO.java

@@ -45,7 +45,7 @@ public class StateOwnedReformLawInfoSaveReqVO {
     private String publishDate;
 
     @Schema(description = "签发日期年份", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "签发日期年份不能为空")
+//    @NotNull(message = "签发日期年份不能为空")
     private Integer publishYear;
 
     @Schema(description = "签发单位", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -77,11 +77,11 @@ public class StateOwnedReformLawInfoSaveReqVO {
     private String updaterName;
 
     @Schema(description = "审核状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
-    @NotEmpty(message = "审核状态不能为空")
+//    @NotEmpty(message = "审核状态不能为空")
     private String auditStatus;
 
     @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
-    @NotEmpty(message = "状态不能为空")
+//    @NotEmpty(message = "状态不能为空")
     private String status;
 
     @Schema(description = "关键词", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -97,7 +97,7 @@ public class StateOwnedReformLawInfoSaveReqVO {
     private String regionCode;
 
     @Schema(description = "审核时间", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "审核时间不能为空")
+//    @NotNull(message = "审核时间不能为空")
     private LocalDateTime auditTime;
 
     @Schema(description = "审核人")

+ 23 - 26
guoyan-module-system/src/main/java/com/cy/guoyan/admin/module/guoyan/service/researchtopiccategory/ResearchTopicCategoryServiceImpl.java

@@ -7,20 +7,17 @@ import com.cy.guoyan.admin.framework.security.core.util.SecurityFrameworkUtils;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 import com.cy.guoyan.admin.module.guoyan.controller.admin.researchtopiccategory.vo.*;
 import com.cy.guoyan.admin.module.guoyan.dal.dataobject.researchtopiccategory.ResearchTopicCategoryDO;
 import com.cy.guoyan.admin.framework.common.pojo.PageResult;
-import com.cy.guoyan.admin.framework.common.pojo.PageParam;
 import com.cy.guoyan.admin.framework.common.util.object.BeanUtils;
 
 import com.cy.guoyan.admin.module.guoyan.dal.mysql.researchtopiccategory.ResearchTopicCategoryMapper;
 
 import static com.cy.guoyan.admin.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static com.cy.guoyan.admin.framework.common.util.collection.CollectionUtils.convertList;
-import static com.cy.guoyan.admin.framework.common.util.collection.CollectionUtils.diffList;
 import static com.cy.guoyan.admin.module.system.enums.ErrorCodeConstants.*;
 
 /**
@@ -46,34 +43,34 @@ public class ResearchTopicCategoryServiceImpl implements ResearchTopicCategorySe
         categoryCode++;
         createReqVO.setStatus("正常");
         String nickname = String.valueOf(SecurityFrameworkUtils.getLoginUser().getInfo().get("nickname"));
-        ResearchTopicCategoryDO researchTopicCategory = BeanUtils.toBean(createReqVO, ResearchTopicCategoryDO.class);
-        researchTopicCategory.setCreatorName(nickname);
-        researchTopicCategory.setArticleCount(0);
+        ResearchTopicCategoryDO data = BeanUtils.toBean(createReqVO, ResearchTopicCategoryDO.class);
+        data.setCreatorName(nickname);
+        data.setArticleCount(0);
         DefaultIdentifierGenerator generator = new DefaultIdentifierGenerator();
-        if (researchTopicCategory.getLevel() == 1) {
-            researchTopicCategory.setCategoryCode(categoryCode);
-            researchTopicCategory.setLevel1Code(categoryCode);
-            researchTopicCategory.setLevel1Name(researchTopicCategory.getCategoryName());
-            researchTopicCategory.setOrder1(createReqVO.getOrder());
-            researchTopicCategory.setOrder2(0);
-        }else if (researchTopicCategory.getLevel() == 2) {
+        if (data.getLevel() == 1) {
+            data.setCategoryCode(categoryCode);
+            data.setLevel1Code(categoryCode);
+            data.setLevel1Name(data.getCategoryName());
+            data.setOrder1(createReqVO.getOrder());
+            data.setOrder2(0);
+        }else if (data.getLevel() == 2) {
             ResearchTopicCategoryDO parent = researchTopicCategoryMapper.selectOne(
                     new LambdaQueryWrapperX<ResearchTopicCategoryDO>()
-                            .eq(ResearchTopicCategoryDO::getCategoryCode, researchTopicCategory.getParentCode()));
-
-            researchTopicCategory.setCategoryCode(categoryCode);
-            researchTopicCategory.setParentName(parent.getCategoryName());
-            researchTopicCategory.setLevel1Code(parent.getLevel1Code());
-            researchTopicCategory.setLevel1Name(parent.getLevel1Name());
-            researchTopicCategory.setLevel2Code(researchTopicCategory.getCategoryCode());
-            researchTopicCategory.setLevel2Name(researchTopicCategory.getCategoryName());
-            researchTopicCategory.setOrder1(parent.getOrder1());
-            researchTopicCategory.setOrder2(createReqVO.getOrder());
+                            .eq(ResearchTopicCategoryDO::getCategoryCode, data.getParentCode()));
+
+            data.setCategoryCode(categoryCode);
+            data.setParentName(parent.getCategoryName());
+            data.setLevel1Code(parent.getLevel1Code());
+            data.setLevel1Name(parent.getLevel1Name());
+            data.setLevel2Code(data.getCategoryCode());
+            data.setLevel2Name(data.getCategoryName());
+            data.setOrder1(parent.getOrder1());
+            data.setOrder2(createReqVO.getOrder());
         }
-        researchTopicCategory.setId(generator.nextId(null));
-        researchTopicCategoryMapper.insert(researchTopicCategory);
+        data.setId(generator.nextId(null));
+        researchTopicCategoryMapper.insert(data);
         // 返回
-        return researchTopicCategory.getId();
+        return data.getId();
     }
 
     @Override

+ 32 - 18
guoyan-module-system/src/main/java/com/cy/guoyan/admin/module/guoyan/service/researchtopicinfo/ResearchTopicInfoServiceImpl.java

@@ -1,17 +1,14 @@
 package com.cy.guoyan.admin.module.guoyan.service.researchtopicinfo;
 
 import cn.hutool.core.collection.CollUtil;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator;
 import com.cy.guoyan.admin.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.cy.guoyan.admin.framework.security.core.util.SecurityFrameworkUtils;
-import com.cy.guoyan.admin.module.infra.api.file.FileApi;
-import com.cy.guoyan.admin.module.infra.controller.admin.file.vo.file.FileRespVO;
+import com.cy.guoyan.admin.module.guoyan.dal.dataobject.researchtopiccategory.ResearchTopicCategoryDO;
+import com.cy.guoyan.admin.module.guoyan.dal.mysql.researchtopiccategory.ResearchTopicCategoryMapper;
 import com.cy.guoyan.admin.module.infra.controller.admin.file.vo.file.FileVO;
 import com.cy.guoyan.admin.module.infra.dal.dataobject.file.FileDO;
 import com.cy.guoyan.admin.module.infra.dal.mysql.file.FileMapper;
-import com.cy.guoyan.admin.module.infra.service.file.FileService;
 import com.cy.guoyan.admin.module.system.enums.common.JobTypeCodeConstants;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
@@ -21,20 +18,17 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.util.*;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 
 import com.cy.guoyan.admin.module.guoyan.controller.admin.researchtopicinfo.vo.*;
 import com.cy.guoyan.admin.module.guoyan.dal.dataobject.researchtopicinfo.ResearchTopicInfoDO;
 import com.cy.guoyan.admin.framework.common.pojo.PageResult;
-import com.cy.guoyan.admin.framework.common.pojo.PageParam;
 import com.cy.guoyan.admin.framework.common.util.object.BeanUtils;
 
 import com.cy.guoyan.admin.module.guoyan.dal.mysql.researchtopicinfo.ResearchTopicInfoMapper;
 
 import static com.cy.guoyan.admin.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static com.cy.guoyan.admin.framework.common.util.collection.CollectionUtils.convertList;
-import static com.cy.guoyan.admin.framework.common.util.collection.CollectionUtils.diffList;
 import static com.cy.guoyan.admin.module.system.enums.ErrorCodeConstants.*;
 
 /**
@@ -52,37 +46,57 @@ public class ResearchTopicInfoServiceImpl implements ResearchTopicInfoService {
     @Resource
     private FileMapper fileMapper;
 
+    @Resource
+    private ResearchTopicCategoryMapper researchTopicCategoryMapper;
+
 
     @Override
     public Long createResearchTopicInfo(ResearchTopicInfoSaveReqVO createReqVO) {
         String nickname = String.valueOf(SecurityFrameworkUtils.getLoginUser().getInfo().get("nickname"));
-        ResearchTopicInfoDO researchTopicInfo = BeanUtils.toBean(createReqVO, ResearchTopicInfoDO.class);
-        researchTopicInfo.setCreatorName(nickname);
+        ResearchTopicInfoDO data = BeanUtils.toBean(createReqVO, ResearchTopicInfoDO.class);
+        data.setCreatorName(nickname);
         DefaultIdentifierGenerator generator = new DefaultIdentifierGenerator();
-        researchTopicInfo.setId(generator.nextId(null));
-        researchTopicInfo.setAuditStatus("未审核");
-        researchTopicInfo.setStatus("正常");
+        data.setId(generator.nextId(null));
+        data.setAuditStatus("未审核");
+        data.setStatus("正常");
         if (createReqVO.getOriginalPubDate() != null) {
             String year = createReqVO.getOriginalPubDate().substring(0, 4);
-            researchTopicInfo.setOriginalPubYear(Integer.parseInt(year));
+            data.setOriginalPubYear(Integer.parseInt(year));
         }
-        researchTopicInfo.setImported("0");
+        data.setImported("0");
         if (StringUtils.isNotBlank(createReqVO.getImage())) {
             createReqVO.setImageDate(extractDate(createReqVO.getImage()));
         }
 
-        researchTopicInfoMapper.insert(researchTopicInfo);
+        researchTopicInfoMapper.insert(data);
         if (createReqVO.getFileList() != null) {
             createReqVO.getFileList().forEach(file -> {
                 file.setJobTypeCode(JobTypeCodeConstants.GUO_ZI_RESEARCH_TOPIC_INFO);
-                file.setBusinessId(String.valueOf(researchTopicInfo.getId()));
+                file.setBusinessId(String.valueOf(data.getId()));
                 List<FileDO> fileDOList =BeanUtils.toBean(createReqVO.getFileList(), FileDO.class);
                 fileMapper.updateBatch(fileDOList);
             });
         }
 
+        if (StringUtils.isNotBlank(createReqVO.getTopicCategoryCode())) {
+            String topicCategoryCodeStr = createReqVO.getTopicCategoryCode();
+            List<String> codeList = Arrays.stream(topicCategoryCodeStr.split("\\."))
+                    .filter(StringUtils::isNotBlank)
+                    .collect(Collectors.toList());
+
+            List<ResearchTopicCategoryDO> categoryList =
+                    researchTopicCategoryMapper.selectList(
+                            new LambdaQueryWrapperX<ResearchTopicCategoryDO>()
+                                    .in(ResearchTopicCategoryDO::getCategoryCode, codeList));
+
+            categoryList.forEach(item ->
+                    item.setArticleCount(
+                            Optional.ofNullable(item.getArticleCount()).orElse(0) + 1));
+            researchTopicCategoryMapper.updateBatch(categoryList);
+        }
+
         // 返回
-        return researchTopicInfo.getId();
+        return data.getId();
     }
 
     @Override

+ 10 - 1
guoyan-module-system/src/main/java/com/cy/guoyan/admin/module/system/enums/ErrorCodeConstants.java

@@ -163,7 +163,16 @@ public interface ErrorCodeConstants {
 
     ErrorCode RESEARCH_TOPIC_CATEGORY_NOT_EXISTS = new ErrorCode(1_002_092_000, "国资研究专题分类不存在");
 
-    ErrorCode RESEARCH_TOPIC_CATEGORY_HAS_CHILDREN = new ErrorCode(1_002_092_000, "不能删除有子分类数据");
+    ErrorCode CATEGORY_DELETE_HAS_CHILDREN = new ErrorCode(1_002_092_000, "分类存在子节点,不能删除");
 
+    ErrorCode STATE_OWNED_REFORM_LAW_CATEGORY_NOT_EXISTS = new ErrorCode(1_002_093_000, "国企改革法规主题分类不存在");
+
+    ErrorCode STATE_OWNED_REFORM_LAW_INFO_NOT_EXISTS = new ErrorCode(1_002_094_000, "国企改革法规信息不存在");
+
+    ErrorCode STATE_OWNED_REFORM_LAW_LEVEL_NOT_EXISTS = new ErrorCode(1_002_095_000, "国企改革法规层级不存在");
+
+    ErrorCode STATE_OWNED_REFORM_BEST_PRACTICE_INFO_NOT_EXISTS = new ErrorCode(1_002_096_000, "国资改革最佳实践数据信息不存在");
+
+    ErrorCode STATE_OWNED_REFORM_BEST_PRACTICE_CATEGORY_NOT_EXISTS = new ErrorCode(1_002_097_000, "国资改革最佳实践主题分类不存在");
 
 }

+ 3 - 0
guoyan-module-system/src/main/java/com/cy/guoyan/admin/module/system/enums/common/JobTypeCodeConstants.java

@@ -7,6 +7,9 @@ public class JobTypeCodeConstants {
     /** 国资研究专题信息 */
     public static final String GUO_ZI_RESEARCH_TOPIC_INFO = "guo_zi_research_topic_info";
 
+    /** 国资研究专题信息 */
+    public static final String STATE_OWNED_REFORM_LAW_INFO = "state_owned_reform_law_info";
+
 
 
     private JobTypeCodeConstants() {