质量文件版本管理增加修改和删除功能

dev
yitonglei 3 years ago
parent 9957bc97d7
commit 9f9c22e8a8
  1. 4
      lab-service-api/lab-file-api/src/main/java/org/springblade/file/entity/QualityStorageFileRel.java
  2. 62
      lab-service/lab-capital/src/main/java/org/springblade/lims/capital/controller/CommandController.java
  3. 22
      lab-service/lab-capital/src/main/java/org/springblade/lims/commands/Command.java
  4. 27
      lab-service/lab-capital/src/main/java/org/springblade/lims/commands/commandutils/CommandTest.java
  5. 8
      lab-service/lab-file/src/main/java/org/springblade/file/service/impl/QualityFileServiceImpl.java
  6. 50
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/EntrustController.java

@ -59,6 +59,10 @@ public class QualityStorageFileRel extends BaseEntity implements Serializable {
@ApiModelProperty(value = "文件id")
@NotNull
private Long storageFileId;
@ApiModelProperty(value = "文件附表id")
@NotNull
private Long qualityFileAssistantId;
/**
* 排序号
*/

@ -0,0 +1,62 @@
package org.springblade.lims.capital.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.apache.poi.ss.formula.functions.T;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.lims.commands.Command;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @Description 扫描枪扫描执行命令相关
* @Author ytl
* @Date 2022/9/23 0023 14:29
*/
@RestController
@AllArgsConstructor
@RequestMapping("/command")
@Api(value = "扫描枪扫描执行命令相关", tags = "扫描枪扫描执行命令相关")
public class CommandController extends BladeController {
@GetMapping("/execute")
@ApiOperation(value = "执行命令", notes = "传入扫描枪扫描的命令字符串,里面必然携带要执行的命令的名称")
public R execute(String commandStr){
boolean result = false;
//解析commandStr
Map<String,Object> params = this.commandAnalysis(commandStr);
Object bean = SpringUtil.getBean("command_" + String.valueOf(params.get("name")));
if(bean instanceof Command){
result = executeCommand((Command) bean, params);
}
if(result){
return R.success("命令执行成功");
}else{
return R.fail("命令执行失败,没有找到相关命令");
}
}
private boolean executeCommand(Command c, Map<String,Object> s){
return c.execute(s);
}
private Map<String,Object> commandAnalysis(String s){
Map<String,Object> map = new ConcurrentHashMap<>();
//通过某种格式解析指令
map.put("name","test");
return map;
}
}

@ -0,0 +1,22 @@
package org.springblade.lims.commands;
import java.util.Map;
/**
* @Description 命令的抽象类
* @Author ytl
* @Date 2022/9/23 0023 14:16
*/
public abstract class Command {
/**
* 命令的名称
*/
String name;
/**
* 命令的执行
* @param params 命令的参数
* @return true命令执行成功false命令执行失败
*/
public abstract boolean execute(Map<String,Object> params);
}

@ -0,0 +1,27 @@
package org.springblade.lims.commands.commandutils;
import org.springblade.lims.commands.Command;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
* @Description 测试命令
* @Author ytl
* @Date 2022/9/23 0023 14:24
*/
@Component("command_test")
public class CommandTest extends Command {
private String name;
public CommandTest(){
this.name = "CommandTest";
}
@Override
public boolean execute(Map<String,Object> params){
return true;
}
}

@ -105,22 +105,26 @@ public class QualityFileServiceImpl extends BaseServiceImpl<QualityFileMapper, Q
}
qualityFile.setActiveDeptIds(resultDeptStr);
// 新增修改质量文件主表
// 新增修改质量文件主表
qualityFileService.saveOrUpdate(qualityFile);
Long qualityFileId = qualityFile.getId();
//移除质量文件主表与部门关联表中的相关记录
qualityFileDeptRelService.removeByQualityFileId(qualityFileId);
//将新的部门关系加入到质量文件主表与部门关联表中
Set<String> deptIds = qualityFile.getDeptIds();
qualityFileDeptRelService.saveBatch(deptIds.stream().map(deptId -> QualityFileDeptRel.builder().qualityFileId(qualityFileId).deptId(deptId).build()).collect(Collectors.toList()));
Set<QualityStorageFileRelDTO> fileRels = qualityFile.getFiles();
//根据主表ID删除文件与存储关联的相关记录
qualityStorageFileRelService.removeByQualityFileId(qualityFileId);
fileRels.forEach(dto -> dto.setQualityFileId(qualityFileId));
int pageCount = storageFileService.countPageCount(fileRels.stream().map(QualityStorageFileRel::getStorageFileId).collect(Collectors.toSet()));
//重新保存文件与存储关联关系
qualityStorageFileRelService.saveBatch(new ArrayList<>(fileRels));
qualityFile.setPageCount(pageCount);
@ -129,6 +133,8 @@ public class QualityFileServiceImpl extends BaseServiceImpl<QualityFileMapper, Q
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateFile(QualityFile qualityFile) {

@ -1,6 +1,7 @@
package org.springblade.lims.controller;
import cn.afterturn.easypoi.entity.ImageEntity;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import cn.afterturn.easypoi.word.WordExportUtil;
@ -9,6 +10,7 @@ import com.alibaba.nacos.common.utils.CollectionUtils;
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.github.binarywang.utils.qrcode.QrcodeUtils;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.spire.doc.Document;
import com.spire.doc.FieldType;
@ -37,12 +39,17 @@ import org.springblade.system.user.entity.User;
import org.springblade.system.user.feign.IUserClient;
import org.springframework.web.bind.annotation.*;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.nio.file.Files;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.List;
import java.util.stream.Collectors;
/**
@ -1674,12 +1681,47 @@ public class EntrustController extends BladeController {
/**
* 24.二维码生成
*/
@PostMapping("/QrcodeUtils")
public void QrcodeUtils() {
@GetMapping("/QrcodeUtils")
public void QrcodeUtils(String content) throws Exception {
BufferedImage img = QrcodeUtils.generateQRCodeImage(content, 400, ClassLoader.getSystemResourceAsStream("logo.png"));
// File outFile = Files.createTempFile("qrcode_with_logo_", ".png").toFile();
Map<String, Object> result = new HashMap<>();
ImageEntity farView = new ImageEntity();
farView.setHeight(50);//设置高度
farView.setWidth(90);//设置宽度
farView.setType(ImageEntity.Data);//类型
FileInputStream fis = null;
try {
// fis = new FileInputStream(new File(s1));
// byte[] bytes = readInputStream(fis);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ImageIO.write(img, "png",bos );
byte[] bytes = bos.toByteArray();
farView.setData(bytes);
//farView.setData(bytes);
} catch (Exception e) {
e.printStackTrace();
}
result.put("img", farView);
//ImageIO.write(img, "png", outFile);
// Desktop.getDesktop().open(outFile);
}
/**
* 读输入流
*/
private static byte[] readInputStream(InputStream inStream) throws Exception {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inStream.read(buffer)) != -1) {
outStream.write(buffer, 0, len);
}
inStream.close();
return outStream.toByteArray();
}
/**
* 24.获取委托单
*/

Loading…
Cancel
Save