diff --git a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java index 79c69ebb..27a88b64 100644 --- a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java +++ b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java @@ -9,209 +9,209 @@ import org.springblade.core.launch.constant.AppConstant; */ public interface LauncherConstant { - /** - * nacos 命名空间 - */ + /** + * nacos 命名空间 + */ // String NACOS_NAMESPACE = "feaf627f-a847-463b-8b73-24a0538f526e"; - // 生产环境 - String NACOS_NAMESPACE = "db3f4da1-ae19-4104-8c17-6d9b8f069401"; - // 测试环境 - // String NACOS_NAMESPACE = "6cdd0310-0d61-4f54-891a-7fb06224d9b8"; - - /** - * nacos 用户名 - */ - String NACOS_USERNAME = "nacos"; - - /** - * nacos 密码 - */ - String NACOS_PASSWORD = "nacos"; - - /** - * nacos dev 地址 - */ - String NACOS_DEV_ADDR = "127.0.0.1:8848"; - - /** - * nacos prod 地址 - */ - String NACOS_PROD_ADDR = "172.30.0.48:8848"; - - /** - * nacos test 地址 - */ - String NACOS_TEST_ADDR = "172.30.0.48:8848"; - - /** - * sentinel dev 地址 - */ - String SENTINEL_DEV_ADDR = "127.0.0.1:8858"; - - /** - * sentinel prod 地址 - */ - String SENTINEL_PROD_ADDR = "172.30.0.58:8858"; - - /** - * sentinel test 地址 - */ - String SENTINEL_TEST_ADDR = "172.30.0.58:8858"; - - /** - * seata dev 地址 - */ - String SEATA_DEV_ADDR = "127.0.0.1:8091"; - - /** - * seata prod 地址 - */ - String SEATA_PROD_ADDR = "172.30.0.68:8091"; - - /** - * seata test 地址 - */ - String SEATA_TEST_ADDR = "172.30.0.68:8091"; - - /** - * zipkin dev 地址 - */ - String ZIPKIN_DEV_ADDR = "http://127.0.0.1:9411"; - - /** - * zipkin prod 地址 - */ - String ZIPKIN_PROD_ADDR = "http://172.30.0.71:9411"; - - /** - * zipkin test 地址 - */ - String ZIPKIN_TEST_ADDR = "http://172.30.0.71:9411"; - - /** - * elk dev 地址 - */ - String ELK_DEV_ADDR = "127.0.0.1:9000"; - - /** - * elk prod 地址 - */ - String ELK_PROD_ADDR = "172.30.0.72:9000"; - - /** - * elk test 地址 - */ - String ELK_TEST_ADDR = "172.30.0.72:9000"; - - /** - * seata file模式 - */ - String FILE_MODE = "file"; - - /** - * seata nacos模式 - */ - String NACOS_MODE = "nacos"; - - /** - * seata default模式 - */ - String DEFAULT_MODE = "default"; - - /** - * seata group后缀 - */ - String GROUP_NAME = "-group"; - - - /** - * 排产系统 - */ - String APPLICATION_SCHEDULING_NAME = "blade-scheduling"; - - /** - * 生产监控 - */ - String APPLICATION_MONITOR_NAME = "blade-monitor"; - - /** - * seata 服务组格式 - * - * @param appName 服务名 - * @return group - */ - static String seataServiceGroup(String appName) { - return appName.concat(GROUP_NAME); - } - - /** - * 动态获取nacos地址 - * - * @param profile 环境变量 - * @return addr - */ - static String nacosAddr(String profile) { - return switch (profile) { - case (AppConstant.PROD_CODE) -> NACOS_PROD_ADDR; - case (AppConstant.TEST_CODE) -> NACOS_TEST_ADDR; - default -> NACOS_DEV_ADDR; - }; - } - - /** - * 动态获取sentinel地址 - * - * @param profile 环境变量 - * @return addr - */ - static String sentinelAddr(String profile) { - return switch (profile) { - case (AppConstant.PROD_CODE) -> SENTINEL_PROD_ADDR; - case (AppConstant.TEST_CODE) -> SENTINEL_TEST_ADDR; - default -> SENTINEL_DEV_ADDR; - }; - } - - /** - * 动态获取seata地址 - * - * @param profile 环境变量 - * @return addr - */ - static String seataAddr(String profile) { - return switch (profile) { - case (AppConstant.PROD_CODE) -> SEATA_PROD_ADDR; - case (AppConstant.TEST_CODE) -> SEATA_TEST_ADDR; - default -> SEATA_DEV_ADDR; - }; - } - - /** - * 动态获取zipkin地址 - * - * @param profile 环境变量 - * @return addr - */ - static String zipkinAddr(String profile) { - return switch (profile) { - case (AppConstant.PROD_CODE) -> ZIPKIN_PROD_ADDR; - case (AppConstant.TEST_CODE) -> ZIPKIN_TEST_ADDR; - default -> ZIPKIN_DEV_ADDR; - }; - } - - /** - * 动态获取elk地址 - * - * @param profile 环境变量 - * @return addr - */ - static String elkAddr(String profile) { - return switch (profile) { - case (AppConstant.PROD_CODE) -> ELK_PROD_ADDR; - case (AppConstant.TEST_CODE) -> ELK_TEST_ADDR; - default -> ELK_DEV_ADDR; - }; - } + // 生产环境 +// String NACOS_NAMESPACE = "db3f4da1-ae19-4104-8c17-6d9b8f069401"; + // 测试环境 + String NACOS_NAMESPACE = "6cdd0310-0d61-4f54-891a-7fb06224d9b8"; + + /** + * nacos 用户名 + */ + String NACOS_USERNAME = "nacos"; + + /** + * nacos 密码 + */ + String NACOS_PASSWORD = "nacos"; + + /** + * nacos dev 地址 + */ + String NACOS_DEV_ADDR = "127.0.0.1:8848"; + + /** + * nacos prod 地址 + */ + String NACOS_PROD_ADDR = "172.30.0.48:8848"; + + /** + * nacos test 地址 + */ + String NACOS_TEST_ADDR = "172.30.0.48:8848"; + + /** + * sentinel dev 地址 + */ + String SENTINEL_DEV_ADDR = "127.0.0.1:8858"; + + /** + * sentinel prod 地址 + */ + String SENTINEL_PROD_ADDR = "172.30.0.58:8858"; + + /** + * sentinel test 地址 + */ + String SENTINEL_TEST_ADDR = "172.30.0.58:8858"; + + /** + * seata dev 地址 + */ + String SEATA_DEV_ADDR = "127.0.0.1:8091"; + + /** + * seata prod 地址 + */ + String SEATA_PROD_ADDR = "172.30.0.68:8091"; + + /** + * seata test 地址 + */ + String SEATA_TEST_ADDR = "172.30.0.68:8091"; + + /** + * zipkin dev 地址 + */ + String ZIPKIN_DEV_ADDR = "http://127.0.0.1:9411"; + + /** + * zipkin prod 地址 + */ + String ZIPKIN_PROD_ADDR = "http://172.30.0.71:9411"; + + /** + * zipkin test 地址 + */ + String ZIPKIN_TEST_ADDR = "http://172.30.0.71:9411"; + + /** + * elk dev 地址 + */ + String ELK_DEV_ADDR = "127.0.0.1:9000"; + + /** + * elk prod 地址 + */ + String ELK_PROD_ADDR = "172.30.0.72:9000"; + + /** + * elk test 地址 + */ + String ELK_TEST_ADDR = "172.30.0.72:9000"; + + /** + * seata file模式 + */ + String FILE_MODE = "file"; + + /** + * seata nacos模式 + */ + String NACOS_MODE = "nacos"; + + /** + * seata default模式 + */ + String DEFAULT_MODE = "default"; + + /** + * seata group后缀 + */ + String GROUP_NAME = "-group"; + + + /** + * 排产系统 + */ + String APPLICATION_SCHEDULING_NAME = "blade-scheduling"; + + /** + * 生产监控 + */ + String APPLICATION_MONITOR_NAME = "blade-monitor"; + + /** + * seata 服务组格式 + * + * @param appName 服务名 + * @return group + */ + static String seataServiceGroup(String appName) { + return appName.concat(GROUP_NAME); + } + + /** + * 动态获取nacos地址 + * + * @param profile 环境变量 + * @return addr + */ + static String nacosAddr(String profile) { + return switch (profile) { + case (AppConstant.PROD_CODE) -> NACOS_PROD_ADDR; + case (AppConstant.TEST_CODE) -> NACOS_TEST_ADDR; + default -> NACOS_DEV_ADDR; + }; + } + + /** + * 动态获取sentinel地址 + * + * @param profile 环境变量 + * @return addr + */ + static String sentinelAddr(String profile) { + return switch (profile) { + case (AppConstant.PROD_CODE) -> SENTINEL_PROD_ADDR; + case (AppConstant.TEST_CODE) -> SENTINEL_TEST_ADDR; + default -> SENTINEL_DEV_ADDR; + }; + } + + /** + * 动态获取seata地址 + * + * @param profile 环境变量 + * @return addr + */ + static String seataAddr(String profile) { + return switch (profile) { + case (AppConstant.PROD_CODE) -> SEATA_PROD_ADDR; + case (AppConstant.TEST_CODE) -> SEATA_TEST_ADDR; + default -> SEATA_DEV_ADDR; + }; + } + + /** + * 动态获取zipkin地址 + * + * @param profile 环境变量 + * @return addr + */ + static String zipkinAddr(String profile) { + return switch (profile) { + case (AppConstant.PROD_CODE) -> ZIPKIN_PROD_ADDR; + case (AppConstant.TEST_CODE) -> ZIPKIN_TEST_ADDR; + default -> ZIPKIN_DEV_ADDR; + }; + } + + /** + * 动态获取elk地址 + * + * @param profile 环境变量 + * @return addr + */ + static String elkAddr(String profile) { + return switch (profile) { + case (AppConstant.PROD_CODE) -> ELK_PROD_ADDR; + case (AppConstant.TEST_CODE) -> ELK_TEST_ADDR; + default -> ELK_DEV_ADDR; + }; + } } diff --git a/blade-ops/blade-job/src/main/resources/application-dev.yml b/blade-ops/blade-job/src/main/resources/application-dev.yml index adb34200..8ab5f1b4 100644 --- a/blade-ops/blade-job/src/main/resources/application-dev.yml +++ b/blade-ops/blade-job/src/main/resources/application-dev.yml @@ -3,6 +3,7 @@ server: port: 7770 #job服务配置 +#PowerJob外部应用启动类 tech.powerjob.server.PowerJobServerApplication powerjob: worker: app-name: ${spring.application.name} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/vo/BaseEntityVO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/vo/BaseEntityVO.java index 21a119cf..e05c23a4 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/vo/BaseEntityVO.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/vo/BaseEntityVO.java @@ -37,5 +37,5 @@ public class BaseEntityVO { @Schema(description = "维护[用户]-真名") private String keepUserRealName = "维护[用户]-真名"; @Schema(description = "业务状态 名称") - private String statusName; + private String statusName = "statusName"; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/IdUtil.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/IdUtil.java similarity index 92% rename from blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/IdUtil.java rename to blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/IdUtil.java index 7b01ecd3..4fe156d0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/IdUtil.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/IdUtil.java @@ -1,4 +1,4 @@ -package org.springblade.desk.quality.util; +package org.springblade.desk.basic.util; /** * 雪花 long id工具类。 @@ -32,7 +32,7 @@ public class IdUtil { public static Boolean isInvalid(Long id) { if (id == null || id <= 0L) { return Boolean.TRUE; - // todo:兼容老MES数据 + // todo:兼容老MES数据 不进行19位校验 // } else if (id < MIN_19_ID) { // return Boolean.TRUE; } else if (id == Long.MAX_VALUE) { diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/constant/ProReTemplateConst.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/constant/ProReTemplateConst.java index 61164b6a..baf3f7cb 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/constant/ProReTemplateConst.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/constant/ProReTemplateConst.java @@ -13,4 +13,11 @@ public interface ProReTemplateConst { * 废弃 */ Integer STATUS_NO = 3; + + + Integer ONLINE = 1; + + Integer OFFLINE = 0; + + String DIC = "ProReTemplate-Status"; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ProReTemplateController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ProReTemplateController.java index e72d29a4..ba275361 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ProReTemplateController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ProReTemplateController.java @@ -25,6 +25,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.quality.constant.ProReTemplateConst; import org.springblade.desk.quality.excel.ProReTemplateExcel; import org.springblade.desk.quality.pojo.entity.ProReTemplate; import org.springblade.desk.quality.pojo.vo.ProReTemplateVO; @@ -54,184 +55,213 @@ import java.util.stream.Collectors; public class ProReTemplateController extends BladeController { @Resource - private IProReTemplateService service; - - /** - * [过程记录模板] 详情 - */ - @GetMapping("/detail") - @ApiOperationSupport(order = 10) - @Operation(summary = "详情", description = "传入ProReTemplate Obj") - public R detail(ProReTemplate proReTemplate) { - QueryWrapper qw = Condition.getQueryWrapper(proReTemplate); - ProReTemplate detail = service.getOne(qw); - ProReTemplateVO detailVO = ProReTemplateWrapper.build().entityVO(detail); - service.setVOValue(detailVO); - return R.data(detailVO); - } - - /** - * [过程记录模板] list分页 - */ - @GetMapping("/list") - @ApiOperationSupport(order = 20) - @Operation(summary = "list分页", description = "传入ProReTemplate Obj") - public R> list(@Parameter(hidden = true) @RequestParam Map proReTemplate, - Query query) { + private IProReTemplateService service; + + /** + * [过程记录模板] 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 10) + @Operation(summary = "详情", description = "传入ProReTemplate Obj") + public R detail(ProReTemplate proReTemplate) { + QueryWrapper qw = Condition.getQueryWrapper(proReTemplate); + ProReTemplate detail = service.getOne(qw); + ProReTemplateVO detailVO = ProReTemplateWrapper.build().entityVO(detail); + service.setVOValue(detailVO); + return R.data(detailVO); + } + + /** + * [过程记录模板] list分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 20) + @Operation(summary = "list分页", description = "传入ProReTemplate Obj") + public R> list(@Parameter(hidden = true) @RequestParam Map proReTemplate, + Query query) { QueryWrapper qw = Condition.getQueryWrapper(proReTemplate, ProReTemplate.class); - IPage pages = service.page(Condition.getPage(query), qw); - IPage pagesVO = ProReTemplateWrapper.build().pageVO(pages); - pagesVO.getRecords() - .stream() - .peek(service::setVOValue) - .collect(Collectors.toList()); - return R.data(pagesVO); - } - - - /** - * [过程记录模板] page分页 - */ - @GetMapping("/page") - @ApiOperationSupport(order = 21) - @Operation(summary = "page分页", description = "传入ProReTemplate Obj") - public R> page(ProReTemplateVO proReTemplate, Query query) { - IPage pagesVO = service.selectProReTemplatePage( - Condition.getPage(query), proReTemplate - ); - return R.data(pagesVO); - } - - /** + IPage pages = service.page(Condition.getPage(query), qw); + IPage pagesVO = ProReTemplateWrapper.build().pageVO(pages); + pagesVO.getRecords() + .stream() + .peek(service::setVOValue) + .collect(Collectors.toList()); + return R.data(pagesVO); + } + + + /** + * [过程记录模板] page分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 21) + @Operation(summary = "page分页", description = "传入ProReTemplate Obj") + public R> page(ProReTemplateVO proReTemplate, Query query) { + IPage pagesVO = service.selectProReTemplatePage( + Condition.getPage(query), proReTemplate + ); + return R.data(pagesVO); + } + + /** * [过程记录模板] list下拉选择 */ @GetMapping("/listForSelect") @ApiOperationSupport(order = 22) - @Operation(summary = "list下拉选择", description = "") + @Operation(summary = "list下拉选择", description = "") public R> listForSelect() { - List list = service.list(); - List listVO = ProReTemplateWrapper.build().listVO(list); - return R.data(listVO); - } - - /** - * [过程记录模板] 新增一条 - */ - @PostMapping("/save") - @ApiOperationSupport(order = 30) - @Operation(summary = "新增一条", description = "传入ProReTemplate Obj") - public R save(@Valid @RequestBody ProReTemplate addOne) { - addOne.setId(null); - return R.status(service.save(addOne)); - } - - /** + List list = service.list(); + List listVO = ProReTemplateWrapper.build().listVO(list); + return R.data(listVO); + } + + /** + * [过程记录模板] 新增一条 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 30) + @Operation(summary = "新增一条", description = "传入ProReTemplate Obj") + public R save(@Valid @RequestBody ProReTemplate addOne) { + addOne.setId(null); + addOne.setStatus(ProReTemplateConst.STATUS_NEW); + addOne.setApprovalStatus(1); + return R.status(service.save(addOne)); + } + + /** * [过程记录模板] 新增批量 */ - @PostMapping("/saveBat") - @ApiOperationSupport(order = 31) - @Operation(summary = "新增批量", description = "传入ProReTemplate List") - public R saveBat(@Valid @RequestBody List addList) { - addList.forEach(one -> { - one.setId(null); - }); - return R.status(service.saveBatch(addList)); - } - - /** - * [过程记录模板] 修改一条 - */ - @PostMapping("/update") - @ApiOperationSupport(order = 40) - @Operation(summary = "修改一条", description = "传入ProReTemplate Obj") - public R update(@Valid @RequestBody ProReTemplate updateOne) { - return R.status(service.updateById(updateOne)); - } + @PostMapping("/saveBat") + @ApiOperationSupport(order = 31) + @Operation(summary = "新增批量", description = "传入ProReTemplate List") + public R saveBat(@Valid @RequestBody List addList) { + addList.forEach(one -> { + one.setId(null); + }); + return R.status(service.saveBatch(addList)); + } + + /** + * [过程记录模板] 修改一条 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 40) + @Operation(summary = "修改一条", description = "传入ProReTemplate Obj") + public R update(@Valid @RequestBody ProReTemplate updateOne) { + return R.status(service.updateById(updateOne)); + } + + /** + * [过程记录模板] 修改一条 + */ + @PostMapping("/updateDetail") + @ApiOperationSupport(order = 42) + @Operation(summary = "修改一条明细", description = "传入ProReTemplate Obj") + public R updateDetail(@Valid @RequestBody ProReTemplateVO updateDetail) { + return service.updateDetail(updateDetail); + } /** * [过程记录模板] 修改批量 */ @PostMapping("/updateBat") @ApiOperationSupport(order = 41) - @Operation(summary = "修改批量", description = "传入ProReTemplate List") + @Operation(summary = "修改批量", description = "传入ProReTemplate List") public R updateBat(@Valid @RequestBody List updateList) { return R.status(service.updateBatchById(updateList)); } - /** - * [过程记录模板] 新增或修改一条 - */ - @PostMapping("/submit") - @ApiOperationSupport(order = 50) - @Operation(summary = "新增或修改一条", description = "传入ProReTemplate Obj") - public R submit(@Valid @RequestBody ProReTemplate mergeOne) { - return R.status(service.saveOrUpdate(mergeOne)); - } + /** + * [过程记录模板] 新增或修改一条 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 50) + @Operation(summary = "新增或修改一条", description = "传入ProReTemplate Obj") + public R submit(@Valid @RequestBody ProReTemplate mergeOne) { + return R.status(service.saveOrUpdate(mergeOne)); + } - /** + /** * [过程记录模板] 新增或修改批量 */ - @PostMapping("/submitBat") - @ApiOperationSupport(order = 51) - @Operation(summary = "新增或修改批量", description = "传入ProReTemplate List") - public R submitBat(@Valid @RequestBody List mergeList) { - return R.status(service.saveOrUpdateBatch(mergeList)); - } - - /** - * [过程记录模板] 逻辑删除 - */ - @PostMapping("/remove") - @ApiOperationSupport(order = 61) - @Operation(summary = "逻辑删除", description = "传入ids") - public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { - return R.status(service.deleteLogic(Func.toLongList(ids))); - } - - /** - * [过程记录模板] 导出Excel - */ - @GetMapping("/exportExcel") - @ApiOperationSupport(order = 70) - @Operation(summary = "导出Excel", description = "传入ProReTemplate") - public void exportExcel(@Parameter(hidden = true) @RequestParam Map proReTemplate, - BladeUser bladeUser, HttpServletResponse response) { - QueryWrapper qw = Condition.getQueryWrapper(proReTemplate, ProReTemplate.class); - //if (!AuthUtil.isAdministrator()) { - // queryWrapper.lambda().eq(ProReTemplate::getTenantId, bladeUser.getTenantId()); - //} - //queryWrapper.lambda().eq(ProReTemplateEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); - List list = service.exportProReTemplate(qw); - ExcelUtil.export(response, "[过程记录模板]数据" + DateUtil.time(), - "[过程记录模板]数据表", list, ProReTemplateExcel.class); - } - - /** + @PostMapping("/submitBat") + @ApiOperationSupport(order = 51) + @Operation(summary = "新增或修改批量", description = "传入ProReTemplate List") + public R submitBat(@Valid @RequestBody List mergeList) { + return R.status(service.saveOrUpdateBatch(mergeList)); + } + + /** + * [过程记录模板] 逻辑删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 61) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(service.deleteLogic(Func.toLongList(ids))); + } + + @GetMapping("/removeFromDetail") + @ApiOperationSupport(order = 61) + @Operation(summary = "逻辑删除FromDetail", description = "传入ids") + public R removeFromDetail(@Parameter(description = "", required = true) @RequestParam Long tankId) { + return service.removeFromDetail(tankId); + } + + /** + * [过程记录模板] 导出Excel + */ + @GetMapping("/exportExcel") + @ApiOperationSupport(order = 70) + @Operation(summary = "导出Excel", description = "传入ProReTemplate") + public void exportExcel(@Parameter(hidden = true) @RequestParam Map proReTemplate, + BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper qw = Condition.getQueryWrapper(proReTemplate, ProReTemplate.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(ProReTemplate::getTenantId, bladeUser.getTenantId()); + //} + //queryWrapper.lambda().eq(ProReTemplateEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = service.exportProReTemplate(qw); + ExcelUtil.export(response, "[过程记录模板]数据" + DateUtil.time(), + "[过程记录模板]数据表", list, ProReTemplateExcel.class); + } + + /** * [过程记录模板] 下载Excel模板 */ - @GetMapping("/downloadExcelTemplate") - @ApiOperationSupport(order = 71) - @Operation(summary = "下载Excel模板", description = "") - public ResponseEntity downloadExcelTemplate() { - return ExcelExtUtil.downloadXlsTemplate( - "Excel/QA/ImportTemplate-CycleTestItem.xls", - "导入模版-周期试验项目.xls"); - } - - /** - * [过程记录模板] 导入Excel - */ - @PostMapping("/importExcel") - @ApiOperationSupport(order = 72) - @Operation(summary = "导入Excel", description = "MultipartFile") - public R importExcel(@RequestParam("file") MultipartFile file) { - R checkR = ExcelExtUtil.importExcelCheck(file); - if (checkR != null) { - return checkR; - } - List importList = ExcelUtil.read( - file, 0, 1, ProReTemplate.class - ); - return R.status(service.saveBatch(importList)); - } + @GetMapping("/downloadExcelTemplate") + @ApiOperationSupport(order = 71) + @Operation(summary = "下载Excel模板", description = "") + public ResponseEntity downloadExcelTemplate() { + return ExcelExtUtil.downloadXlsTemplate( + "Excel/QA/ImportTemplate-CycleTestItem.xls", + "导入模版-周期试验项目.xls"); + } + + /** + * [过程记录模板] 导入Excel + */ + @PostMapping("/importExcel") + @ApiOperationSupport(order = 72) + @Operation(summary = "导入Excel", description = "MultipartFile") + public R importExcel(@RequestParam("file") MultipartFile file) { + R checkR = ExcelExtUtil.importExcelCheck(file); + if (checkR != null) { + return checkR; + } + List importList = ExcelUtil.read( + file, 0, 1, ProReTemplate.class + ); + return R.status(service.saveBatch(importList)); + } + + /** + * [过程记录模板] 逻辑删除 + */ + @GetMapping("/copy") + @ApiOperationSupport(order = 80) + @Operation(summary = "copy", description = "传入id") + public R copy(@Parameter(description = "主键", required = true) @RequestParam Long id) { + return service.copy(id); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplate.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplate.java index ce6f2420..18c394f2 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplate.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplate.java @@ -79,7 +79,7 @@ public class ProReTemplate extends BaseEntity { * 审批状态 */ @Schema(description = "审批状态") - private Short approvalStatus; + private Integer approvalStatus; /** * 线上/下-[0]:线上;[1]:线下; */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplateDetail.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplateDetail.java index 208ec95f..90519170 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplateDetail.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplateDetail.java @@ -78,17 +78,17 @@ public class ProReTemplateDetail extends BaseEntity { * 是否合格 */ @Schema(description = "是否合格") - private Short qualified; + private Integer qualified; /** * [过程记录模板-槽-明细]id */ @Schema(description = "[过程记录模板-槽-明细]id") - private BigDecimal templateTankId; + private Long templateTankId; /** * 明细序号 */ @Schema(description = "明细序号") - private Short detailIndex; + private Integer detailIndex; /** * 时间 */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplateTank.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplateTank.java index ae744d99..2b4e1daa 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplateTank.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplateTank.java @@ -51,7 +51,7 @@ public class ProReTemplateTank extends BaseEntity { * [过程记录模板]id */ @Schema(description = "[过程记录模板]id") - private BigDecimal templateId; + private Long templateId; /** * 槽号名称 */ @@ -61,15 +61,15 @@ public class ProReTemplateTank extends BaseEntity { * 插入序号 */ @Schema(description = "插入序号") - private Short insertIndex; + private Integer insertIndex; /** * 模板类型 */ @Schema(description = "模板类型") - private Short rfpsType; + private Integer rfpsType; /** * 槽号序号 */ @Schema(description = "槽号序号") - private BigDecimal slotIndex; + private Integer slotIndex; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/AuditFileVO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/AuditFileVO.java index 7dbc80df..178c8ec1 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/AuditFileVO.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/AuditFileVO.java @@ -6,6 +6,8 @@ package org.springblade.desk.quality.pojo.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; +import org.springblade.desk.basic.pojo.vo.BaseEntityVO; import org.springblade.desk.quality.pojo.entity.AuditFile; import java.io.Serial; @@ -19,12 +21,9 @@ import java.io.Serial; @Data @EqualsAndHashCode(callSuper = true) public class AuditFileVO extends AuditFile { - @Serial - private static final long serialVersionUID = 1L; + @Serial + private static final long serialVersionUID = 1L; - /** - * todo: - */ - @Schema(description = "状态名称") - private String statusName; + @Schema(description = "base") + private BaseEntityVO base; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/ProReTemplateTankVO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/ProReTemplateTankVO.java index 50836b02..8147817c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/ProReTemplateTankVO.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/ProReTemplateTankVO.java @@ -25,5 +25,4 @@ public class ProReTemplateTankVO extends ProReTemplateTank { @Schema(description = "detail 具体明细") List childrenList; - } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/ProReTemplateVO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/ProReTemplateVO.java index 783f6996..1fbc8607 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/ProReTemplateVO.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/ProReTemplateVO.java @@ -26,13 +26,15 @@ public class ProReTemplateVO extends ProReTemplate { /** * todo: */ - @Schema(description = "基本信息字段") - private BaseEntityVO base = new BaseEntityVO(); + @Schema(description = "base信息字段") + private BaseEntityVO base; @Schema(description = "[作业中心]name") private String wcName; @Schema(description = "[工序]name") private String ppsName; + @Schema(description = "[审批状态]name") + private String approvalStatusName; @Schema(description = "tank 槽明细") private List preserveSlotList; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestItemService2.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestItemService2.java index 3b57bfe1..46196390 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestItemService2.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestItemService2.java @@ -14,7 +14,7 @@ import org.springblade.desk.quality.pojo.entity.CycleTestItem; import org.springblade.desk.quality.pojo.entity.CycleTestStandard; import org.springblade.desk.quality.pojo.request.CycleTestItemSubmit; import org.springblade.desk.quality.pojo.vo.CycleTestItemVO; -import org.springblade.desk.quality.util.IdUtil; +import org.springblade.desk.basic.util.IdUtil; import org.springblade.desk.quality.wrapper.CycleTestItemWrapper; import org.springblade.resource.feign.IAttachClient; import org.springblade.resource.pojo.entity.Attach; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestStandardService2.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestStandardService2.java index 1eeb7f12..699f6d85 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestStandardService2.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestStandardService2.java @@ -10,7 +10,7 @@ import org.springblade.desk.basic.constant.BaseCol; import org.springblade.desk.quality.mapper.CycleTestStandardMapper; import org.springblade.desk.quality.pojo.entity.CycleTestStandard; import org.springblade.desk.quality.pojo.vo.CycleTestStandardVO; -import org.springblade.desk.quality.util.IdUtil; +import org.springblade.desk.basic.util.IdUtil; import org.springblade.resource.feign.IAttachClient; import org.springblade.resource.pojo.entity.Attach; import org.springframework.stereotype.Service; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IAuditFileService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IAuditFileService.java index 1604429d..2bf11cff 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IAuditFileService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IAuditFileService.java @@ -6,6 +6,7 @@ package org.springblade.desk.quality.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; +import org.springblade.core.tool.api.R; import org.springblade.desk.quality.excel.AuditFileExcel; import org.springblade.desk.quality.pojo.entity.AuditFile; import org.springblade.desk.quality.pojo.vo.AuditFileVO; @@ -41,4 +42,6 @@ public interface IAuditFileService extends BaseService { * @param vo */ void setVOValue(AuditFileVO vo); + + R upgradeVer(Long id); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IProReTemplateService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IProReTemplateService.java index 76a10437..11cfef4c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IProReTemplateService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IProReTemplateService.java @@ -5,12 +5,14 @@ package org.springblade.desk.quality.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.v3.oas.annotations.Parameter; import org.springblade.core.mp.base.BaseService; import org.springblade.core.tool.api.R; import org.springblade.desk.quality.excel.ProReTemplateExcel; import org.springblade.desk.quality.pojo.entity.ProReTemplate; import org.springblade.desk.quality.pojo.vo.InspectionTemplateVO; import org.springblade.desk.quality.pojo.vo.ProReTemplateVO; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -45,7 +47,11 @@ public interface IProReTemplateService extends BaseService { */ void setVOValue(ProReTemplateVO vo); + R updateDetail(ProReTemplateVO vo); + R copy(Long id); R upgradeVer(Long id); + + R removeFromDetail(Long tankId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskService222.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskService222.java index f248a733..f35d8a9f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskService222.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskService222.java @@ -13,7 +13,7 @@ import org.springblade.desk.quality.mapper.LiquidTankTaskMapper; import org.springblade.desk.quality.pojo.entity.LiquidTank; import org.springblade.desk.quality.pojo.entity.LiquidTankTask; import org.springblade.desk.quality.pojo.request.*; -import org.springblade.desk.quality.util.IdUtil; +import org.springblade.desk.basic.util.IdUtil; import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.UserInfo; import org.springframework.stereotype.Service; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskSetVoService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskSetVoService.java index 541dc4c5..b233b56e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskSetVoService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskSetVoService.java @@ -18,7 +18,7 @@ import org.springblade.desk.quality.constant.LiquidTankTaskConst; import org.springblade.desk.quality.pojo.entity.LiquidTank; import org.springblade.desk.quality.pojo.vo.LiquidTankReportConfigVO; import org.springblade.desk.quality.pojo.vo.LiquidTankTaskVO; -import org.springblade.desk.quality.util.IdUtil; +import org.springblade.desk.basic.util.IdUtil; import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.UserInfo; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/AuditFileServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/AuditFileServiceImpl.java index 60e5203d..a4e32882 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/AuditFileServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/AuditFileServiceImpl.java @@ -11,6 +11,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.api.R; import org.springblade.desk.quality.excel.AuditFileExcel; import org.springblade.desk.quality.mapper.AuditFileMapper; import org.springblade.desk.quality.pojo.entity.AuditFile; @@ -55,4 +56,9 @@ public class AuditFileServiceImpl extends BaseServiceImpl tankVOList = tankService.getListByTemplateId(vo.getId()); - // 根据插入序号 getInsertIndex 排序 生成新的list - tankVOList = tankVOList.stream() - .sorted(Comparator.comparingInt(ProReTemplateTankVO::getInsertIndex)) - .collect(Collectors.toList()); - vo.setPreserveSlotList(tankVOList); - for (ProReTemplateTankVO tankVO : vo.getPreserveSlotList()) { - List detailVOList = detailService.getListByTemplateTankId(tankVO.getId()); - tankVO.setChildrenList(detailVOList); + if (tankVOList != null && !tankVOList.isEmpty()) { + // 根据插入序号 getInsertIndex 排序 生成新的list + tankVOList = tankVOList.stream() + .sorted(Comparator.comparingInt(ProReTemplateTankVO::getInsertIndex)) + .collect(Collectors.toList()); + vo.setPreserveSlotList(tankVOList); + for (ProReTemplateTankVO tankVO : vo.getPreserveSlotList()) { + List detailVOList = detailService.getListByTemplateTankId(tankVO.getId()); + tankVO.setChildrenList(detailVOList); + } + } + } + + /** + * 构建BaseEntityVO + * + * @param be 不赋值可以传入null + * @param statusCode 不需要可以传null + * @return BaseEntityVO + */ + public BaseEntityVO setBaseVOValue(BaseEntity be, String statusCode) { + if (be == null) { + return null; + } + BaseEntityVO bv = new BaseEntityVO(); + R rUICR = null; + R rUIUP = null; + R rDept = null; + if (IdUtil.isValid(be.getCreateUser())) { + rUICR = userClient.userInfo(be.getCreateUser()); + if (rUICR != null && rUICR.isSuccess() && + rUICR.getData() != null && rUICR.getData().getUser() != null) { + bv.setCreateUserRealName(rUICR.getData().getUser().getRealName()); + } + + } + if (IdUtil.isValid(be.getUpdateUser())) { + rUIUP = userClient.userInfo(be.getUpdateUser()); + if (rUIUP != null && rUIUP.isSuccess() && + rUIUP.getData() != null && rUIUP.getData().getUser() != null) { + bv.setUpdateUserRealName(rUIUP.getData().getUser().getRealName()); + } + } + if (IdUtil.isValid(be.getCreateDept())) { + rDept = sysClient.getDept(be.getCreateDept()); + if (rDept != null && rDept.isSuccess() && rDept.getData() != null) { + bv.setCreateDeptName(rDept.getData().getDeptName()); + } } + if (be.getCreateTime() != null && be.getUpdateTime() != null) { + if (be.getUpdateTime().after(be.getCreateTime())) { // 更新时间更晚 + bv.setKeepUser(be.getUpdateUser()); + bv.setKeepUserRealName(bv.getUpdateUserRealName()); + } else { // 等于或更早 + bv.setKeepUser(be.getCreateUser()); + bv.setKeepUserRealName(bv.getCreateUserRealName()); + } + } + if (StringUtils.isNotBlank(statusCode)) { + R rStatusDic = dictClient.getValue(statusCode, "" + be.getStatus()); + if (rStatusDic != null && rStatusDic.isSuccess() && rStatusDic.getData() != null) { + bv.setStatusName(rStatusDic.getData()); + } + } + return bv; + } + + @Override + public R updateDetail(ProReTemplateVO vo) { + for (ProReTemplateTankVO tankOne : vo.getPreserveSlotList()) { + tankOne.setTemplateId(vo.getId()); + if (IdUtil.isValid(tankOne.getId())) { + tankService.updateById(tankOne); + } else { + tankService.save(tankOne); + } + for (ProReTemplateDetailVO detailOne : tankOne.getChildrenList()) { + detailOne.setTemplateTankId(tankOne.getId()); + if (IdUtil.isValid(detailOne.getId())) { + detailService.updateById(detailOne); + } else { + detailService.save(detailOne); + } + } + } + ProReTemplate e = new ProReTemplate(); + BeanUtil.copyProperties(vo, e, true); + return R.status(updateById(e)); } @Override @@ -94,4 +187,9 @@ public class ProReTemplateServiceImpl extends BaseServiceImpl