维护人相关。

develop-QA
Tom Li 4 months ago
parent 7d3d559259
commit 01e71425aa
  1. 406
      blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
  2. 1
      blade-ops/blade-job/src/main/resources/application-dev.yml
  3. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/vo/BaseEntityVO.java
  4. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/IdUtil.java
  5. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/constant/ProReTemplateConst.java
  6. 344
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ProReTemplateController.java
  7. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplate.java
  8. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplateDetail.java
  9. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplateTank.java
  10. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/AuditFileVO.java
  11. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/ProReTemplateTankVO.java
  12. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/ProReTemplateVO.java
  13. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestItemService2.java
  14. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestStandardService2.java
  15. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IAuditFileService.java
  16. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IProReTemplateService.java
  17. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskService222.java
  18. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskSetVoService.java
  19. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/AuditFileServiceImpl.java
  20. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankServiceImpl.java
  21. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskServiceImpl.java
  22. 116
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ProReTemplateServiceImpl.java
  23. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/StandardServiceImpl.java
  24. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/BaseEntityUtil.java

@ -9,209 +9,209 @@ import org.springblade.core.launch.constant.AppConstant;
*/ */
public interface LauncherConstant { public interface LauncherConstant {
/** /**
* nacos 命名空间 * nacos 命名空间
*/ */
// String NACOS_NAMESPACE = "feaf627f-a847-463b-8b73-24a0538f526e"; // String NACOS_NAMESPACE = "feaf627f-a847-463b-8b73-24a0538f526e";
// 生产环境 // 生产环境
String NACOS_NAMESPACE = "db3f4da1-ae19-4104-8c17-6d9b8f069401"; // String NACOS_NAMESPACE = "db3f4da1-ae19-4104-8c17-6d9b8f069401";
// 测试环境 // 测试环境
// String NACOS_NAMESPACE = "6cdd0310-0d61-4f54-891a-7fb06224d9b8"; String NACOS_NAMESPACE = "6cdd0310-0d61-4f54-891a-7fb06224d9b8";
/** /**
* nacos 用户名 * nacos 用户名
*/ */
String NACOS_USERNAME = "nacos"; String NACOS_USERNAME = "nacos";
/** /**
* nacos 密码 * nacos 密码
*/ */
String NACOS_PASSWORD = "nacos"; String NACOS_PASSWORD = "nacos";
/** /**
* nacos dev 地址 * nacos dev 地址
*/ */
String NACOS_DEV_ADDR = "127.0.0.1:8848"; String NACOS_DEV_ADDR = "127.0.0.1:8848";
/** /**
* nacos prod 地址 * nacos prod 地址
*/ */
String NACOS_PROD_ADDR = "172.30.0.48:8848"; String NACOS_PROD_ADDR = "172.30.0.48:8848";
/** /**
* nacos test 地址 * nacos test 地址
*/ */
String NACOS_TEST_ADDR = "172.30.0.48:8848"; String NACOS_TEST_ADDR = "172.30.0.48:8848";
/** /**
* sentinel dev 地址 * sentinel dev 地址
*/ */
String SENTINEL_DEV_ADDR = "127.0.0.1:8858"; String SENTINEL_DEV_ADDR = "127.0.0.1:8858";
/** /**
* sentinel prod 地址 * sentinel prod 地址
*/ */
String SENTINEL_PROD_ADDR = "172.30.0.58:8858"; String SENTINEL_PROD_ADDR = "172.30.0.58:8858";
/** /**
* sentinel test 地址 * sentinel test 地址
*/ */
String SENTINEL_TEST_ADDR = "172.30.0.58:8858"; String SENTINEL_TEST_ADDR = "172.30.0.58:8858";
/** /**
* seata dev 地址 * seata dev 地址
*/ */
String SEATA_DEV_ADDR = "127.0.0.1:8091"; String SEATA_DEV_ADDR = "127.0.0.1:8091";
/** /**
* seata prod 地址 * seata prod 地址
*/ */
String SEATA_PROD_ADDR = "172.30.0.68:8091"; String SEATA_PROD_ADDR = "172.30.0.68:8091";
/** /**
* seata test 地址 * seata test 地址
*/ */
String SEATA_TEST_ADDR = "172.30.0.68:8091"; String SEATA_TEST_ADDR = "172.30.0.68:8091";
/** /**
* zipkin dev 地址 * zipkin dev 地址
*/ */
String ZIPKIN_DEV_ADDR = "http://127.0.0.1:9411"; String ZIPKIN_DEV_ADDR = "http://127.0.0.1:9411";
/** /**
* zipkin prod 地址 * zipkin prod 地址
*/ */
String ZIPKIN_PROD_ADDR = "http://172.30.0.71:9411"; String ZIPKIN_PROD_ADDR = "http://172.30.0.71:9411";
/** /**
* zipkin test 地址 * zipkin test 地址
*/ */
String ZIPKIN_TEST_ADDR = "http://172.30.0.71:9411"; String ZIPKIN_TEST_ADDR = "http://172.30.0.71:9411";
/** /**
* elk dev 地址 * elk dev 地址
*/ */
String ELK_DEV_ADDR = "127.0.0.1:9000"; String ELK_DEV_ADDR = "127.0.0.1:9000";
/** /**
* elk prod 地址 * elk prod 地址
*/ */
String ELK_PROD_ADDR = "172.30.0.72:9000"; String ELK_PROD_ADDR = "172.30.0.72:9000";
/** /**
* elk test 地址 * elk test 地址
*/ */
String ELK_TEST_ADDR = "172.30.0.72:9000"; String ELK_TEST_ADDR = "172.30.0.72:9000";
/** /**
* seata file模式 * seata file模式
*/ */
String FILE_MODE = "file"; String FILE_MODE = "file";
/** /**
* seata nacos模式 * seata nacos模式
*/ */
String NACOS_MODE = "nacos"; String NACOS_MODE = "nacos";
/** /**
* seata default模式 * seata default模式
*/ */
String DEFAULT_MODE = "default"; String DEFAULT_MODE = "default";
/** /**
* seata group后缀 * seata group后缀
*/ */
String GROUP_NAME = "-group"; String GROUP_NAME = "-group";
/** /**
* 排产系统 * 排产系统
*/ */
String APPLICATION_SCHEDULING_NAME = "blade-scheduling"; String APPLICATION_SCHEDULING_NAME = "blade-scheduling";
/** /**
* 生产监控 * 生产监控
*/ */
String APPLICATION_MONITOR_NAME = "blade-monitor"; String APPLICATION_MONITOR_NAME = "blade-monitor";
/** /**
* seata 服务组格式 * seata 服务组格式
* *
* @param appName 服务名 * @param appName 服务名
* @return group * @return group
*/ */
static String seataServiceGroup(String appName) { static String seataServiceGroup(String appName) {
return appName.concat(GROUP_NAME); return appName.concat(GROUP_NAME);
} }
/** /**
* 动态获取nacos地址 * 动态获取nacos地址
* *
* @param profile 环境变量 * @param profile 环境变量
* @return addr * @return addr
*/ */
static String nacosAddr(String profile) { static String nacosAddr(String profile) {
return switch (profile) { return switch (profile) {
case (AppConstant.PROD_CODE) -> NACOS_PROD_ADDR; case (AppConstant.PROD_CODE) -> NACOS_PROD_ADDR;
case (AppConstant.TEST_CODE) -> NACOS_TEST_ADDR; case (AppConstant.TEST_CODE) -> NACOS_TEST_ADDR;
default -> NACOS_DEV_ADDR; default -> NACOS_DEV_ADDR;
}; };
} }
/** /**
* 动态获取sentinel地址 * 动态获取sentinel地址
* *
* @param profile 环境变量 * @param profile 环境变量
* @return addr * @return addr
*/ */
static String sentinelAddr(String profile) { static String sentinelAddr(String profile) {
return switch (profile) { return switch (profile) {
case (AppConstant.PROD_CODE) -> SENTINEL_PROD_ADDR; case (AppConstant.PROD_CODE) -> SENTINEL_PROD_ADDR;
case (AppConstant.TEST_CODE) -> SENTINEL_TEST_ADDR; case (AppConstant.TEST_CODE) -> SENTINEL_TEST_ADDR;
default -> SENTINEL_DEV_ADDR; default -> SENTINEL_DEV_ADDR;
}; };
} }
/** /**
* 动态获取seata地址 * 动态获取seata地址
* *
* @param profile 环境变量 * @param profile 环境变量
* @return addr * @return addr
*/ */
static String seataAddr(String profile) { static String seataAddr(String profile) {
return switch (profile) { return switch (profile) {
case (AppConstant.PROD_CODE) -> SEATA_PROD_ADDR; case (AppConstant.PROD_CODE) -> SEATA_PROD_ADDR;
case (AppConstant.TEST_CODE) -> SEATA_TEST_ADDR; case (AppConstant.TEST_CODE) -> SEATA_TEST_ADDR;
default -> SEATA_DEV_ADDR; default -> SEATA_DEV_ADDR;
}; };
} }
/** /**
* 动态获取zipkin地址 * 动态获取zipkin地址
* *
* @param profile 环境变量 * @param profile 环境变量
* @return addr * @return addr
*/ */
static String zipkinAddr(String profile) { static String zipkinAddr(String profile) {
return switch (profile) { return switch (profile) {
case (AppConstant.PROD_CODE) -> ZIPKIN_PROD_ADDR; case (AppConstant.PROD_CODE) -> ZIPKIN_PROD_ADDR;
case (AppConstant.TEST_CODE) -> ZIPKIN_TEST_ADDR; case (AppConstant.TEST_CODE) -> ZIPKIN_TEST_ADDR;
default -> ZIPKIN_DEV_ADDR; default -> ZIPKIN_DEV_ADDR;
}; };
} }
/** /**
* 动态获取elk地址 * 动态获取elk地址
* *
* @param profile 环境变量 * @param profile 环境变量
* @return addr * @return addr
*/ */
static String elkAddr(String profile) { static String elkAddr(String profile) {
return switch (profile) { return switch (profile) {
case (AppConstant.PROD_CODE) -> ELK_PROD_ADDR; case (AppConstant.PROD_CODE) -> ELK_PROD_ADDR;
case (AppConstant.TEST_CODE) -> ELK_TEST_ADDR; case (AppConstant.TEST_CODE) -> ELK_TEST_ADDR;
default -> ELK_DEV_ADDR; default -> ELK_DEV_ADDR;
}; };
} }
} }

@ -3,6 +3,7 @@ server:
port: 7770 port: 7770
#job服务配置 #job服务配置
#PowerJob外部应用启动类 tech.powerjob.server.PowerJobServerApplication
powerjob: powerjob:
worker: worker:
app-name: ${spring.application.name} app-name: ${spring.application.name}

@ -37,5 +37,5 @@ public class BaseEntityVO {
@Schema(description = "维护[用户]-真名") @Schema(description = "维护[用户]-真名")
private String keepUserRealName = "维护[用户]-真名"; private String keepUserRealName = "维护[用户]-真名";
@Schema(description = "业务状态 名称") @Schema(description = "业务状态 名称")
private String statusName; private String statusName = "statusName";
} }

@ -1,4 +1,4 @@
package org.springblade.desk.quality.util; package org.springblade.desk.basic.util;
/** /**
* 雪花 long id工具类 * 雪花 long id工具类
@ -32,7 +32,7 @@ public class IdUtil {
public static Boolean isInvalid(Long id) { public static Boolean isInvalid(Long id) {
if (id == null || id <= 0L) { if (id == null || id <= 0L) {
return Boolean.TRUE; return Boolean.TRUE;
// todo:兼容老MES数据 // todo:兼容老MES数据 不进行19位校验
// } else if (id < MIN_19_ID) { // } else if (id < MIN_19_ID) {
// return Boolean.TRUE; // return Boolean.TRUE;
} else if (id == Long.MAX_VALUE) { } else if (id == Long.MAX_VALUE) {

@ -13,4 +13,11 @@ public interface ProReTemplateConst {
* 废弃 * 废弃
*/ */
Integer STATUS_NO = 3; Integer STATUS_NO = 3;
Integer ONLINE = 1;
Integer OFFLINE = 0;
String DIC = "ProReTemplate-Status";
} }

@ -25,6 +25,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.util.ExcelExtUtil; 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.excel.ProReTemplateExcel;
import org.springblade.desk.quality.pojo.entity.ProReTemplate; import org.springblade.desk.quality.pojo.entity.ProReTemplate;
import org.springblade.desk.quality.pojo.vo.ProReTemplateVO; import org.springblade.desk.quality.pojo.vo.ProReTemplateVO;
@ -54,184 +55,213 @@ import java.util.stream.Collectors;
public class ProReTemplateController extends BladeController { public class ProReTemplateController extends BladeController {
@Resource @Resource
private IProReTemplateService service; private IProReTemplateService service;
/** /**
* [过程记录模板] 详情 * [过程记录模板] 详情
*/ */
@GetMapping("/detail") @GetMapping("/detail")
@ApiOperationSupport(order = 10) @ApiOperationSupport(order = 10)
@Operation(summary = "详情", description = "传入ProReTemplate Obj") @Operation(summary = "详情", description = "传入ProReTemplate Obj")
public R<ProReTemplateVO> detail(ProReTemplate proReTemplate) { public R<ProReTemplateVO> detail(ProReTemplate proReTemplate) {
QueryWrapper<ProReTemplate> qw = Condition.getQueryWrapper(proReTemplate); QueryWrapper<ProReTemplate> qw = Condition.getQueryWrapper(proReTemplate);
ProReTemplate detail = service.getOne(qw); ProReTemplate detail = service.getOne(qw);
ProReTemplateVO detailVO = ProReTemplateWrapper.build().entityVO(detail); ProReTemplateVO detailVO = ProReTemplateWrapper.build().entityVO(detail);
service.setVOValue(detailVO); service.setVOValue(detailVO);
return R.data(detailVO); return R.data(detailVO);
} }
/** /**
* [过程记录模板] list分页 * [过程记录模板] list分页
*/ */
@GetMapping("/list") @GetMapping("/list")
@ApiOperationSupport(order = 20) @ApiOperationSupport(order = 20)
@Operation(summary = "list分页", description = "传入ProReTemplate Obj") @Operation(summary = "list分页", description = "传入ProReTemplate Obj")
public R<IPage<ProReTemplateVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> proReTemplate, public R<IPage<ProReTemplateVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> proReTemplate,
Query query) { Query query) {
QueryWrapper<ProReTemplate> qw = Condition.getQueryWrapper(proReTemplate, ProReTemplate.class); QueryWrapper<ProReTemplate> qw = Condition.getQueryWrapper(proReTemplate, ProReTemplate.class);
IPage<ProReTemplate> pages = service.page(Condition.getPage(query), qw); IPage<ProReTemplate> pages = service.page(Condition.getPage(query), qw);
IPage<ProReTemplateVO> pagesVO = ProReTemplateWrapper.build().pageVO(pages); IPage<ProReTemplateVO> pagesVO = ProReTemplateWrapper.build().pageVO(pages);
pagesVO.getRecords() pagesVO.getRecords()
.stream() .stream()
.peek(service::setVOValue) .peek(service::setVOValue)
.collect(Collectors.toList()); .collect(Collectors.toList());
return R.data(pagesVO); return R.data(pagesVO);
} }
/** /**
* [过程记录模板] page分页 * [过程记录模板] page分页
*/ */
@GetMapping("/page") @GetMapping("/page")
@ApiOperationSupport(order = 21) @ApiOperationSupport(order = 21)
@Operation(summary = "page分页", description = "传入ProReTemplate Obj") @Operation(summary = "page分页", description = "传入ProReTemplate Obj")
public R<IPage<ProReTemplateVO>> page(ProReTemplateVO proReTemplate, Query query) { public R<IPage<ProReTemplateVO>> page(ProReTemplateVO proReTemplate, Query query) {
IPage<ProReTemplateVO> pagesVO = service.selectProReTemplatePage( IPage<ProReTemplateVO> pagesVO = service.selectProReTemplatePage(
Condition.getPage(query), proReTemplate Condition.getPage(query), proReTemplate
); );
return R.data(pagesVO); return R.data(pagesVO);
} }
/** /**
* [过程记录模板] list下拉选择 * [过程记录模板] list下拉选择
*/ */
@GetMapping("/listForSelect") @GetMapping("/listForSelect")
@ApiOperationSupport(order = 22) @ApiOperationSupport(order = 22)
@Operation(summary = "list下拉选择", description = "") @Operation(summary = "list下拉选择", description = "")
public R<List<ProReTemplateVO>> listForSelect() { public R<List<ProReTemplateVO>> listForSelect() {
List<ProReTemplate> list = service.list(); List<ProReTemplate> list = service.list();
List<ProReTemplateVO> listVO = ProReTemplateWrapper.build().listVO(list); List<ProReTemplateVO> listVO = ProReTemplateWrapper.build().listVO(list);
return R.data(listVO); return R.data(listVO);
} }
/** /**
* [过程记录模板] 新增一条 * [过程记录模板] 新增一条
*/ */
@PostMapping("/save") @PostMapping("/save")
@ApiOperationSupport(order = 30) @ApiOperationSupport(order = 30)
@Operation(summary = "新增一条", description = "传入ProReTemplate Obj") @Operation(summary = "新增一条", description = "传入ProReTemplate Obj")
public R save(@Valid @RequestBody ProReTemplate addOne) { public R save(@Valid @RequestBody ProReTemplate addOne) {
addOne.setId(null); addOne.setId(null);
return R.status(service.save(addOne)); addOne.setStatus(ProReTemplateConst.STATUS_NEW);
} addOne.setApprovalStatus(1);
return R.status(service.save(addOne));
/** }
/**
* [过程记录模板] 新增批量 * [过程记录模板] 新增批量
*/ */
@PostMapping("/saveBat") @PostMapping("/saveBat")
@ApiOperationSupport(order = 31) @ApiOperationSupport(order = 31)
@Operation(summary = "新增批量", description = "传入ProReTemplate List") @Operation(summary = "新增批量", description = "传入ProReTemplate List")
public R saveBat(@Valid @RequestBody List<ProReTemplate> addList) { public R saveBat(@Valid @RequestBody List<ProReTemplate> addList) {
addList.forEach(one -> { addList.forEach(one -> {
one.setId(null); one.setId(null);
}); });
return R.status(service.saveBatch(addList)); return R.status(service.saveBatch(addList));
} }
/** /**
* [过程记录模板] 修改一条 * [过程记录模板] 修改一条
*/ */
@PostMapping("/update") @PostMapping("/update")
@ApiOperationSupport(order = 40) @ApiOperationSupport(order = 40)
@Operation(summary = "修改一条", description = "传入ProReTemplate Obj") @Operation(summary = "修改一条", description = "传入ProReTemplate Obj")
public R update(@Valid @RequestBody ProReTemplate updateOne) { public R update(@Valid @RequestBody ProReTemplate updateOne) {
return R.status(service.updateById(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") @PostMapping("/updateBat")
@ApiOperationSupport(order = 41) @ApiOperationSupport(order = 41)
@Operation(summary = "修改批量", description = "传入ProReTemplate List") @Operation(summary = "修改批量", description = "传入ProReTemplate List")
public R updateBat(@Valid @RequestBody List<ProReTemplate> updateList) { public R updateBat(@Valid @RequestBody List<ProReTemplate> updateList) {
return R.status(service.updateBatchById(updateList)); return R.status(service.updateBatchById(updateList));
} }
/** /**
* [过程记录模板] 新增或修改一条 * [过程记录模板] 新增或修改一条
*/ */
@PostMapping("/submit") @PostMapping("/submit")
@ApiOperationSupport(order = 50) @ApiOperationSupport(order = 50)
@Operation(summary = "新增或修改一条", description = "传入ProReTemplate Obj") @Operation(summary = "新增或修改一条", description = "传入ProReTemplate Obj")
public R submit(@Valid @RequestBody ProReTemplate mergeOne) { public R submit(@Valid @RequestBody ProReTemplate mergeOne) {
return R.status(service.saveOrUpdate(mergeOne)); return R.status(service.saveOrUpdate(mergeOne));
} }
/** /**
* [过程记录模板] 新增或修改批量 * [过程记录模板] 新增或修改批量
*/ */
@PostMapping("/submitBat") @PostMapping("/submitBat")
@ApiOperationSupport(order = 51) @ApiOperationSupport(order = 51)
@Operation(summary = "新增或修改批量", description = "传入ProReTemplate List") @Operation(summary = "新增或修改批量", description = "传入ProReTemplate List")
public R submitBat(@Valid @RequestBody List<ProReTemplate> mergeList) { public R submitBat(@Valid @RequestBody List<ProReTemplate> mergeList) {
return R.status(service.saveOrUpdateBatch(mergeList)); return R.status(service.saveOrUpdateBatch(mergeList));
} }
/** /**
* [过程记录模板] 逻辑删除 * [过程记录模板] 逻辑删除
*/ */
@PostMapping("/remove") @PostMapping("/remove")
@ApiOperationSupport(order = 61) @ApiOperationSupport(order = 61)
@Operation(summary = "逻辑删除", description = "传入ids") @Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(service.deleteLogic(Func.toLongList(ids))); return R.status(service.deleteLogic(Func.toLongList(ids)));
} }
/** @GetMapping("/removeFromDetail")
* [过程记录模板] 导出Excel @ApiOperationSupport(order = 61)
*/ @Operation(summary = "逻辑删除FromDetail", description = "传入ids")
@GetMapping("/exportExcel") public R removeFromDetail(@Parameter(description = "", required = true) @RequestParam Long tankId) {
@ApiOperationSupport(order = 70) return service.removeFromDetail(tankId);
@Operation(summary = "导出Excel", description = "传入ProReTemplate") }
public void exportExcel(@Parameter(hidden = true) @RequestParam Map<String, Object> proReTemplate,
BladeUser bladeUser, HttpServletResponse response) { /**
QueryWrapper<ProReTemplate> qw = Condition.getQueryWrapper(proReTemplate, ProReTemplate.class); * [过程记录模板] 导出Excel
//if (!AuthUtil.isAdministrator()) { */
// queryWrapper.lambda().eq(ProReTemplate::getTenantId, bladeUser.getTenantId()); @GetMapping("/exportExcel")
//} @ApiOperationSupport(order = 70)
//queryWrapper.lambda().eq(ProReTemplateEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); @Operation(summary = "导出Excel", description = "传入ProReTemplate")
List<ProReTemplateExcel> list = service.exportProReTemplate(qw); public void exportExcel(@Parameter(hidden = true) @RequestParam Map<String, Object> proReTemplate,
ExcelUtil.export(response, "[过程记录模板]数据" + DateUtil.time(), BladeUser bladeUser, HttpServletResponse response) {
"[过程记录模板]数据表", list, ProReTemplateExcel.class); QueryWrapper<ProReTemplate> 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<ProReTemplateExcel> list = service.exportProReTemplate(qw);
ExcelUtil.export(response, "[过程记录模板]数据" + DateUtil.time(),
"[过程记录模板]数据表", list, ProReTemplateExcel.class);
}
/**
* [过程记录模板] 下载Excel模板 * [过程记录模板] 下载Excel模板
*/ */
@GetMapping("/downloadExcelTemplate") @GetMapping("/downloadExcelTemplate")
@ApiOperationSupport(order = 71) @ApiOperationSupport(order = 71)
@Operation(summary = "下载Excel模板", description = "") @Operation(summary = "下载Excel模板", description = "")
public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() { public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() {
return ExcelExtUtil.downloadXlsTemplate( return ExcelExtUtil.downloadXlsTemplate(
"Excel/QA/ImportTemplate-CycleTestItem.xls", "Excel/QA/ImportTemplate-CycleTestItem.xls",
"导入模版-周期试验项目.xls"); "导入模版-周期试验项目.xls");
} }
/** /**
* [过程记录模板] 导入Excel * [过程记录模板] 导入Excel
*/ */
@PostMapping("/importExcel") @PostMapping("/importExcel")
@ApiOperationSupport(order = 72) @ApiOperationSupport(order = 72)
@Operation(summary = "导入Excel", description = "MultipartFile") @Operation(summary = "导入Excel", description = "MultipartFile")
public R importExcel(@RequestParam("file") MultipartFile file) { public R importExcel(@RequestParam("file") MultipartFile file) {
R checkR = ExcelExtUtil.importExcelCheck(file); R checkR = ExcelExtUtil.importExcelCheck(file);
if (checkR != null) { if (checkR != null) {
return checkR; return checkR;
} }
List<ProReTemplate> importList = ExcelUtil.read( List<ProReTemplate> importList = ExcelUtil.read(
file, 0, 1, ProReTemplate.class file, 0, 1, ProReTemplate.class
); );
return R.status(service.saveBatch(importList)); 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);
}
} }

@ -79,7 +79,7 @@ public class ProReTemplate extends BaseEntity {
* 审批状态 * 审批状态
*/ */
@Schema(description = "审批状态") @Schema(description = "审批状态")
private Short approvalStatus; private Integer approvalStatus;
/** /**
* 线上/-[0]:线上;[1]:线下; * 线上/-[0]:线上;[1]:线下;
*/ */

@ -78,17 +78,17 @@ public class ProReTemplateDetail extends BaseEntity {
* 是否合格 * 是否合格
*/ */
@Schema(description = "是否合格") @Schema(description = "是否合格")
private Short qualified; private Integer qualified;
/** /**
* [过程记录模板--明细]id * [过程记录模板--明细]id
*/ */
@Schema(description = "[过程记录模板-槽-明细]id") @Schema(description = "[过程记录模板-槽-明细]id")
private BigDecimal templateTankId; private Long templateTankId;
/** /**
* 明细序号 * 明细序号
*/ */
@Schema(description = "明细序号") @Schema(description = "明细序号")
private Short detailIndex; private Integer detailIndex;
/** /**
* 时间 * 时间
*/ */

@ -51,7 +51,7 @@ public class ProReTemplateTank extends BaseEntity {
* [过程记录模板]id * [过程记录模板]id
*/ */
@Schema(description = "[过程记录模板]id") @Schema(description = "[过程记录模板]id")
private BigDecimal templateId; private Long templateId;
/** /**
* 槽号名称 * 槽号名称
*/ */
@ -61,15 +61,15 @@ public class ProReTemplateTank extends BaseEntity {
* 插入序号 * 插入序号
*/ */
@Schema(description = "插入序号") @Schema(description = "插入序号")
private Short insertIndex; private Integer insertIndex;
/** /**
* 模板类型 * 模板类型
*/ */
@Schema(description = "模板类型") @Schema(description = "模板类型")
private Short rfpsType; private Integer rfpsType;
/** /**
* 槽号序号 * 槽号序号
*/ */
@Schema(description = "槽号序号") @Schema(description = "槽号序号")
private BigDecimal slotIndex; private Integer slotIndex;
} }

@ -6,6 +6,8 @@ package org.springblade.desk.quality.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; 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 org.springblade.desk.quality.pojo.entity.AuditFile;
import java.io.Serial; import java.io.Serial;
@ -19,12 +21,9 @@ import java.io.Serial;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class AuditFileVO extends AuditFile { public class AuditFileVO extends AuditFile {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** @Schema(description = "base")
* todo: private BaseEntityVO base;
*/
@Schema(description = "状态名称")
private String statusName;
} }

@ -25,5 +25,4 @@ public class ProReTemplateTankVO extends ProReTemplateTank {
@Schema(description = "detail 具体明细") @Schema(description = "detail 具体明细")
List<ProReTemplateDetailVO> childrenList; List<ProReTemplateDetailVO> childrenList;
} }

@ -26,13 +26,15 @@ public class ProReTemplateVO extends ProReTemplate {
/** /**
* todo: * todo:
*/ */
@Schema(description = "基本信息字段") @Schema(description = "base信息字段")
private BaseEntityVO base = new BaseEntityVO(); private BaseEntityVO base;
@Schema(description = "[作业中心]name") @Schema(description = "[作业中心]name")
private String wcName; private String wcName;
@Schema(description = "[工序]name") @Schema(description = "[工序]name")
private String ppsName; private String ppsName;
@Schema(description = "[审批状态]name")
private String approvalStatusName;
@Schema(description = "tank 槽明细") @Schema(description = "tank 槽明细")
private List<ProReTemplateTankVO> preserveSlotList; private List<ProReTemplateTankVO> preserveSlotList;
} }

@ -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.entity.CycleTestStandard;
import org.springblade.desk.quality.pojo.request.CycleTestItemSubmit; import org.springblade.desk.quality.pojo.request.CycleTestItemSubmit;
import org.springblade.desk.quality.pojo.vo.CycleTestItemVO; 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.desk.quality.wrapper.CycleTestItemWrapper;
import org.springblade.resource.feign.IAttachClient; import org.springblade.resource.feign.IAttachClient;
import org.springblade.resource.pojo.entity.Attach; import org.springblade.resource.pojo.entity.Attach;

@ -10,7 +10,7 @@ import org.springblade.desk.basic.constant.BaseCol;
import org.springblade.desk.quality.mapper.CycleTestStandardMapper; import org.springblade.desk.quality.mapper.CycleTestStandardMapper;
import org.springblade.desk.quality.pojo.entity.CycleTestStandard; import org.springblade.desk.quality.pojo.entity.CycleTestStandard;
import org.springblade.desk.quality.pojo.vo.CycleTestStandardVO; 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.feign.IAttachClient;
import org.springblade.resource.pojo.entity.Attach; import org.springblade.resource.pojo.entity.Attach;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

@ -6,6 +6,7 @@ package org.springblade.desk.quality.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService; 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.excel.AuditFileExcel;
import org.springblade.desk.quality.pojo.entity.AuditFile; import org.springblade.desk.quality.pojo.entity.AuditFile;
import org.springblade.desk.quality.pojo.vo.AuditFileVO; import org.springblade.desk.quality.pojo.vo.AuditFileVO;
@ -41,4 +42,6 @@ public interface IAuditFileService extends BaseService<AuditFile> {
* @param vo * @param vo
*/ */
void setVOValue(AuditFileVO vo); void setVOValue(AuditFileVO vo);
R upgradeVer(Long id);
} }

@ -5,12 +5,14 @@ package org.springblade.desk.quality.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.mp.base.BaseService;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.desk.quality.excel.ProReTemplateExcel; import org.springblade.desk.quality.excel.ProReTemplateExcel;
import org.springblade.desk.quality.pojo.entity.ProReTemplate; import org.springblade.desk.quality.pojo.entity.ProReTemplate;
import org.springblade.desk.quality.pojo.vo.InspectionTemplateVO; import org.springblade.desk.quality.pojo.vo.InspectionTemplateVO;
import org.springblade.desk.quality.pojo.vo.ProReTemplateVO; import org.springblade.desk.quality.pojo.vo.ProReTemplateVO;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List; import java.util.List;
@ -45,7 +47,11 @@ public interface IProReTemplateService extends BaseService<ProReTemplate> {
*/ */
void setVOValue(ProReTemplateVO vo); void setVOValue(ProReTemplateVO vo);
R updateDetail(ProReTemplateVO vo);
R copy(Long id); R copy(Long id);
R upgradeVer(Long id); R upgradeVer(Long id);
R removeFromDetail(Long tankId);
} }

@ -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.LiquidTank;
import org.springblade.desk.quality.pojo.entity.LiquidTankTask; import org.springblade.desk.quality.pojo.entity.LiquidTankTask;
import org.springblade.desk.quality.pojo.request.*; 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.feign.IUserClient;
import org.springblade.system.pojo.entity.UserInfo; import org.springblade.system.pojo.entity.UserInfo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

@ -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.entity.LiquidTank;
import org.springblade.desk.quality.pojo.vo.LiquidTankReportConfigVO; import org.springblade.desk.quality.pojo.vo.LiquidTankReportConfigVO;
import org.springblade.desk.quality.pojo.vo.LiquidTankTaskVO; 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.IDictClient;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.UserInfo; import org.springblade.system.pojo.entity.UserInfo;

@ -11,6 +11,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl; 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.excel.AuditFileExcel;
import org.springblade.desk.quality.mapper.AuditFileMapper; import org.springblade.desk.quality.mapper.AuditFileMapper;
import org.springblade.desk.quality.pojo.entity.AuditFile; import org.springblade.desk.quality.pojo.entity.AuditFile;
@ -55,4 +56,9 @@ public class AuditFileServiceImpl extends BaseServiceImpl<AuditFileMapper, Audit
public void setVOValue(AuditFileVO vo) { public void setVOValue(AuditFileVO vo) {
} }
@Override
public R upgradeVer(Long id) {
return null;
}
} }

@ -26,7 +26,7 @@ import org.springblade.desk.quality.mapper.LiquidTankMapper;
import org.springblade.desk.quality.pojo.entity.LiquidTank; import org.springblade.desk.quality.pojo.entity.LiquidTank;
import org.springblade.desk.quality.pojo.vo.LiquidTankVO; import org.springblade.desk.quality.pojo.vo.LiquidTankVO;
import org.springblade.desk.quality.service.ILiquidTankService; import org.springblade.desk.quality.service.ILiquidTankService;
import org.springblade.desk.quality.util.IdUtil; import org.springblade.desk.basic.util.IdUtil;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.UserInfo; import org.springblade.system.pojo.entity.UserInfo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

@ -30,7 +30,7 @@ import org.springblade.desk.quality.pojo.entity.LiquidTankTask;
import org.springblade.desk.quality.pojo.entity.LiquidTankTaskHi; import org.springblade.desk.quality.pojo.entity.LiquidTankTaskHi;
import org.springblade.desk.quality.pojo.vo.LiquidTankTaskVO; import org.springblade.desk.quality.pojo.vo.LiquidTankTaskVO;
import org.springblade.desk.quality.service.*; import org.springblade.desk.quality.service.*;
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.IDictClient;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

@ -11,20 +11,28 @@ import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.pojo.vo.BaseEntityVO;
import org.springblade.desk.quality.constant.ProReTemplateConst; import org.springblade.desk.quality.constant.ProReTemplateConst;
import org.springblade.desk.quality.excel.ProReTemplateExcel; import org.springblade.desk.quality.excel.ProReTemplateExcel;
import org.springblade.desk.quality.mapper.ProReTemplateMapper; import org.springblade.desk.quality.mapper.ProReTemplateMapper;
import org.springblade.desk.quality.pojo.entity.ProReTemplate; import org.springblade.desk.quality.pojo.entity.ProReTemplate;
import org.springblade.desk.quality.pojo.vo.InspectionTemplateVO;
import org.springblade.desk.quality.pojo.vo.ProReTemplateDetailVO; import org.springblade.desk.quality.pojo.vo.ProReTemplateDetailVO;
import org.springblade.desk.quality.pojo.vo.ProReTemplateTankVO; import org.springblade.desk.quality.pojo.vo.ProReTemplateTankVO;
import org.springblade.desk.quality.pojo.vo.ProReTemplateVO; import org.springblade.desk.quality.pojo.vo.ProReTemplateVO;
import org.springblade.desk.quality.service.IProReTemplateDetailService; import org.springblade.desk.quality.service.IProReTemplateDetailService;
import org.springblade.desk.quality.service.IProReTemplateService; import org.springblade.desk.quality.service.IProReTemplateService;
import org.springblade.desk.quality.service.IProReTemplateTankService; import org.springblade.desk.quality.service.IProReTemplateTankService;
import org.springblade.desk.basic.util.IdUtil;
import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.ISysClient;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.Dept;
import org.springblade.system.pojo.entity.User;
import org.springblade.system.pojo.entity.UserInfo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Comparator; import java.util.Comparator;
@ -48,6 +56,10 @@ public class ProReTemplateServiceImpl extends BaseServiceImpl<ProReTemplateMappe
@Resource @Resource
private IUserClient userClient; private IUserClient userClient;
@Resource @Resource
private ISysClient sysClient;
@Resource
private IDictClient dictClient;
@Resource
private IProReTemplateTankService tankService; private IProReTemplateTankService tankService;
@Resource @Resource
private IProReTemplateDetailService detailService; private IProReTemplateDetailService detailService;
@ -68,16 +80,97 @@ public class ProReTemplateServiceImpl extends BaseServiceImpl<ProReTemplateMappe
@Override @Override
public void setVOValue(ProReTemplateVO vo) { public void setVOValue(ProReTemplateVO vo) {
vo.setBase(setBaseVOValue(vo, ProReTemplateConst.DIC));
//
List<ProReTemplateTankVO> tankVOList = tankService.getListByTemplateId(vo.getId()); List<ProReTemplateTankVO> tankVOList = tankService.getListByTemplateId(vo.getId());
// 根据插入序号 getInsertIndex 排序 生成新的list if (tankVOList != null && !tankVOList.isEmpty()) {
tankVOList = tankVOList.stream() // 根据插入序号 getInsertIndex 排序 生成新的list
.sorted(Comparator.comparingInt(ProReTemplateTankVO::getInsertIndex)) tankVOList = tankVOList.stream()
.collect(Collectors.toList()); .sorted(Comparator.comparingInt(ProReTemplateTankVO::getInsertIndex))
vo.setPreserveSlotList(tankVOList); .collect(Collectors.toList());
for (ProReTemplateTankVO tankVO : vo.getPreserveSlotList()) { vo.setPreserveSlotList(tankVOList);
List<ProReTemplateDetailVO> detailVOList = detailService.getListByTemplateTankId(tankVO.getId()); for (ProReTemplateTankVO tankVO : vo.getPreserveSlotList()) {
tankVO.setChildrenList(detailVOList); List<ProReTemplateDetailVO> 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<UserInfo> rUICR = null;
R<UserInfo> rUIUP = null;
R<Dept> 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<String> 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 @Override
@ -94,4 +187,9 @@ public class ProReTemplateServiceImpl extends BaseServiceImpl<ProReTemplateMappe
public R upgradeVer(Long id) { public R upgradeVer(Long id) {
return null; return null;
} }
@Override
public R removeFromDetail(Long tankId) {
return R.status(tankService.removeById(tankId));
}
} }

@ -16,7 +16,7 @@ import org.springblade.desk.quality.mapper.StandardMapper;
import org.springblade.desk.quality.pojo.entity.Standard; import org.springblade.desk.quality.pojo.entity.Standard;
import org.springblade.desk.quality.pojo.vo.StandardVO; import org.springblade.desk.quality.pojo.vo.StandardVO;
import org.springblade.desk.quality.service.IStandardService; import org.springblade.desk.quality.service.IStandardService;
import org.springblade.desk.quality.util.IdUtil; import org.springblade.desk.basic.util.IdUtil;
import org.springblade.resource.feign.IAttachClient; import org.springblade.resource.feign.IAttachClient;
import org.springblade.resource.pojo.entity.Attach; import org.springblade.resource.pojo.entity.Attach;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;

@ -3,13 +3,14 @@ package org.springblade.desk.quality.util;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.secure.utils.AuthUtil;
import org.springframework.beans.BeanWrapper; import org.springblade.desk.basic.util.IdUtil;
import org.springframework.beans.BeanWrapperImpl;
import java.beans.PropertyDescriptor;
import java.util.Date; import java.util.Date;
import java.util.Objects; import java.util.Objects;
/**
* todo:
*/
public class BaseEntityUtil { public class BaseEntityUtil {
/** /**

Loading…
Cancel
Save