瀏覽代碼

fixed novelty

zero 1 年之前
父節點
當前提交
f7c52f39ad

+ 3 - 1
src/main/java/cn/cslg/pas/common/dto/AddTechnicalCaseDTO.java

@@ -2,6 +2,8 @@ package cn.cslg.pas.common.dto;
 
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class AddTechnicalCaseDTO {
 
@@ -17,7 +19,7 @@ public class AddTechnicalCaseDTO {
 
     private String remark;
 
-    private String picture;
+    private List<String> fileGuids;
 
     private String inventionPoint;
 

+ 0 - 2
src/main/java/cn/cslg/pas/common/vo/TechnicalCaseVO.java

@@ -20,8 +20,6 @@ public class TechnicalCaseVO {
 
     private String remark;
 
-    private String picture;
-
     private String inventionPoint;
 
     private List<SystemFile> systemFileList;

+ 36 - 0
src/main/java/cn/cslg/pas/domain/business/AssoTechnicalCaseFile.java

@@ -0,0 +1,36 @@
+package cn.cslg.pas.domain.business;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import org.joda.time.DateTime;
+
+@Data
+@TableName("asso_technical_case_file")
+public class AssoTechnicalCaseFile extends BaseEntity<AssoTechnicalCaseFile> {
+
+    /**
+     * 技术方案id
+     */
+    @TableField(value = "technical_case_id")
+    private Integer technicalCaseId;
+
+    /**
+     * 图片文件guid
+     */
+    @TableField(value = "file_guid")
+    private String fileGuid;
+
+    /**
+     * 创建人
+     */
+    @TableField(value = "create_id")
+    private String createId;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    private DateTime createTime;
+}

+ 0 - 4
src/main/java/cn/cslg/pas/domain/business/TechnicalCase.java

@@ -29,10 +29,6 @@ public class TechnicalCase extends BaseEntity<TechnicalCase> {
     @TableField(value = "remark")
     private String remark;
 
-    //代表图
-    @TableField(value = "picture")
-    private String picture;
-
     //发明点
     @TableField(value = "invention_point")
     private String inventionPoint;

+ 9 - 0
src/main/java/cn/cslg/pas/mapper/AssoTechnicalCaseFileMapper.java

@@ -0,0 +1,9 @@
+package cn.cslg.pas.mapper;
+
+import cn.cslg.pas.domain.business.AssoTechnicalCaseFile;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface AssoTechnicalCaseFileMapper extends BaseMapper<AssoTechnicalCaseFile> {
+}

+ 15 - 0
src/main/java/cn/cslg/pas/service/business/AssoTechnicalCaseFileService.java

@@ -0,0 +1,15 @@
+package cn.cslg.pas.service.business;
+
+import cn.cslg.pas.domain.business.AssoTechnicalCaseFile;
+import cn.cslg.pas.mapper.AssoTechnicalCaseFileMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class AssoTechnicalCaseFileService extends ServiceImpl<AssoTechnicalCaseFileMapper, AssoTechnicalCaseFile> {
+}

+ 43 - 8
src/main/java/cn/cslg/pas/service/business/TechnicalCaseService.java

@@ -8,9 +8,9 @@ import cn.cslg.pas.common.model.cronModel.SystemFile;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.common.vo.TechnicalCaseVO;
-import cn.cslg.pas.domain.business.NoveltyProject;
-import cn.cslg.pas.domain.business.Project;
-import cn.cslg.pas.domain.business.TechnicalCase;
+import cn.cslg.pas.domain.BaseEntity;
+import cn.cslg.pas.domain.business.*;
+import cn.cslg.pas.mapper.AssoTechnicalCaseFileMapper;
 import cn.cslg.pas.mapper.TechnicalCaseMapper;
 import cn.cslg.pas.service.common.FileManagerService;
 import com.alibaba.fastjson.JSONObject;
@@ -26,11 +26,13 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 @Slf4j
@@ -43,14 +45,20 @@ public class TechnicalCaseService extends ServiceImpl<TechnicalCaseMapper, Techn
     private FileManagerService fileManagerService;
 
     @Autowired
+    private AssoTechnicalCaseFileMapper assoTechnicalCaseFileMapper;
+
+    @Autowired
+    private AssoTechnicalCaseFileService assoTechnicalCaseFileService;
+
+    @Autowired
     private TechnicalCaseMapper technicalCaseMapper;
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
     public Integer addOrUpdateTechnicalCase(AddTechnicalCaseDTO vo) {
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
         Integer technicalCaseId = null;
         if (vo.getTechnicalCaseId() == null) {
             if (vo.getProjectId() == null) {
-                PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
                 Project project = new Project();
                 project.setType(4);
                 project.setCreateId(personnelVO.getId());
@@ -71,6 +79,28 @@ public class TechnicalCaseService extends ServiceImpl<TechnicalCaseMapper, Techn
             technicalCase.updateById();
             technicalCaseId = technicalCase.getId();
         }
+
+        List<AssoTechnicalCaseFile> technicalCaseFiles = assoTechnicalCaseFileMapper.selectList(new LambdaQueryWrapper<AssoTechnicalCaseFile>()
+                .eq(AssoTechnicalCaseFile::getTechnicalCaseId, technicalCaseId));
+        if (!CollectionUtils.isEmpty(technicalCaseFiles)) {
+            List<Integer> collect = technicalCaseFiles.stream().map(BaseEntity::getId).collect(Collectors.toList());
+            assoTechnicalCaseFileMapper.deleteBatchIds(collect);
+        }
+        //添加技术方案和图片关联
+        List<AssoTechnicalCaseFile> assoTechnicalCaseFiles = new ArrayList<>();
+        List<String> fileGuids = vo.getFileGuids();
+        if (!CollectionUtils.isEmpty(fileGuids)) {
+            for (String fileGuid : fileGuids) {
+                AssoTechnicalCaseFile assoTechnicalCaseFile = new AssoTechnicalCaseFile();
+                assoTechnicalCaseFile.setTechnicalCaseId(technicalCaseId);
+                assoTechnicalCaseFile.setFileGuid(fileGuid);
+                assoTechnicalCaseFile.setCreateId(personnelVO.getId());
+                assoTechnicalCaseFiles.add(assoTechnicalCaseFile);
+            }
+            if (!CollectionUtils.isEmpty(assoTechnicalCaseFiles)) {
+                assoTechnicalCaseFileService.saveBatch(assoTechnicalCaseFiles);
+            }
+        }
         return technicalCaseId;
     }
 
@@ -80,9 +110,10 @@ public class TechnicalCaseService extends ServiceImpl<TechnicalCaseMapper, Techn
         TechnicalCaseVO technicalCaseVO = new TechnicalCaseVO();
         BeanUtils.copyProperties(technicalCase, technicalCaseVO);
         technicalCaseVO.setTechnicalCaseId(technicalCase.getId());
-        if (StringUtils.isNotEmpty(technicalCaseVO.getPicture())) {
-            List<String> guids = new ArrayList<>();
-            guids.add(technicalCaseVO.getPicture());
+        List<AssoTechnicalCaseFile> assoTechnicalCaseFiles = assoTechnicalCaseFileMapper.selectList(new LambdaQueryWrapper<AssoTechnicalCaseFile>()
+                .eq(AssoTechnicalCaseFile::getTechnicalCaseId, technicalCase.getId()));
+        if (!CollectionUtils.isEmpty(assoTechnicalCaseFiles)) {
+            List<String> guids = assoTechnicalCaseFiles.stream().map(AssoTechnicalCaseFile::getFileGuid).collect(Collectors.toList());
             String res = null;
             try {
                 res = fileManagerService.getSystemFileFromFMS(guids);
@@ -90,7 +121,7 @@ public class TechnicalCaseService extends ServiceImpl<TechnicalCaseMapper, Techn
                 e.printStackTrace();
             }
             if (StringUtils.isNotEmpty(res)) {
-                final List<SystemFile> systemFiles = JSON.parseArray(res, SystemFile.class);
+                List<SystemFile> systemFiles = JSON.parseArray(res, SystemFile.class);
                 technicalCaseVO.setSystemFileList(systemFiles);
             }
         }
@@ -98,6 +129,10 @@ public class TechnicalCaseService extends ServiceImpl<TechnicalCaseMapper, Techn
     }
 
     public void deleteTechnicalCase(TechnicalCaseIdDTO vo) {
+        LambdaQueryWrapper<AssoTechnicalCaseFile> deleteFileWrapper = new LambdaQueryWrapper<>();
+        deleteFileWrapper.eq(AssoTechnicalCaseFile::getTechnicalCaseId, vo.getTechnicalCaseId());
+        assoTechnicalCaseFileService.remove(deleteFileWrapper);
+
         this.removeById(vo.getTechnicalCaseId());
     }
 }