From 9f9c22e8a82feeeff21157d7b7a109984b9eff28 Mon Sep 17 00:00:00 2001 From: yitonglei Date: Fri, 23 Sep 2022 16:58:45 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A8=E9=87=8F=E6=96=87=E4=BB=B6=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E7=AE=A1=E7=90=86=E5=A2=9E=E5=8A=A0=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=92=8C=E5=88=A0=E9=99=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../file/entity/QualityStorageFileRel.java | 4 ++ .../capital/controller/CommandController.java | 62 +++++++++++++++++++ .../springblade/lims/commands/Command.java | 22 +++++++ .../commands/commandutils/CommandTest.java | 27 ++++++++ .../service/impl/QualityFileServiceImpl.java | 8 ++- .../lims/controller/EntrustController.java | 50 +++++++++++++-- 6 files changed, 168 insertions(+), 5 deletions(-) create mode 100644 lab-service/lab-capital/src/main/java/org/springblade/lims/capital/controller/CommandController.java create mode 100644 lab-service/lab-capital/src/main/java/org/springblade/lims/commands/Command.java create mode 100644 lab-service/lab-capital/src/main/java/org/springblade/lims/commands/commandutils/CommandTest.java diff --git a/lab-service-api/lab-file-api/src/main/java/org/springblade/file/entity/QualityStorageFileRel.java b/lab-service-api/lab-file-api/src/main/java/org/springblade/file/entity/QualityStorageFileRel.java index 0e94dd3..4ae492e 100644 --- a/lab-service-api/lab-file-api/src/main/java/org/springblade/file/entity/QualityStorageFileRel.java +++ b/lab-service-api/lab-file-api/src/main/java/org/springblade/file/entity/QualityStorageFileRel.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; /** * 排序号 */ diff --git a/lab-service/lab-capital/src/main/java/org/springblade/lims/capital/controller/CommandController.java b/lab-service/lab-capital/src/main/java/org/springblade/lims/capital/controller/CommandController.java new file mode 100644 index 0000000..59432a0 --- /dev/null +++ b/lab-service/lab-capital/src/main/java/org/springblade/lims/capital/controller/CommandController.java @@ -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 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 s){ + return c.execute(s); + } + + private Map commandAnalysis(String s){ + Map map = new ConcurrentHashMap<>(); + + //通过某种格式解析指令 + + map.put("name","test"); + return map; + } +} diff --git a/lab-service/lab-capital/src/main/java/org/springblade/lims/commands/Command.java b/lab-service/lab-capital/src/main/java/org/springblade/lims/commands/Command.java new file mode 100644 index 0000000..d06a7ee --- /dev/null +++ b/lab-service/lab-capital/src/main/java/org/springblade/lims/commands/Command.java @@ -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 params); +} diff --git a/lab-service/lab-capital/src/main/java/org/springblade/lims/commands/commandutils/CommandTest.java b/lab-service/lab-capital/src/main/java/org/springblade/lims/commands/commandutils/CommandTest.java new file mode 100644 index 0000000..08fa46d --- /dev/null +++ b/lab-service/lab-capital/src/main/java/org/springblade/lims/commands/commandutils/CommandTest.java @@ -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 params){ + return true; + } +} diff --git a/lab-service/lab-file/src/main/java/org/springblade/file/service/impl/QualityFileServiceImpl.java b/lab-service/lab-file/src/main/java/org/springblade/file/service/impl/QualityFileServiceImpl.java index ed9b8e8..0dce65c 100644 --- a/lab-service/lab-file/src/main/java/org/springblade/file/service/impl/QualityFileServiceImpl.java +++ b/lab-service/lab-file/src/main/java/org/springblade/file/service/impl/QualityFileServiceImpl.java @@ -105,22 +105,26 @@ public class QualityFileServiceImpl extends BaseServiceImpl deptIds = qualityFile.getDeptIds(); qualityFileDeptRelService.saveBatch(deptIds.stream().map(deptId -> QualityFileDeptRel.builder().qualityFileId(qualityFileId).deptId(deptId).build()).collect(Collectors.toList())); Set 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 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.获取委托单 */