调试 过程记录模板 相关。

develop-QA
Tom Li 4 months ago
parent 1c79212708
commit 4ff99af978
  1. 3
      blade-ops/blade-resource/src/main/java/org/springblade/resource/feign/AttachClient.java
  2. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/constant/BAModuleConst.java
  3. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/constant/BaseCol.java
  4. 41
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/pojo/vo/BaseEntityVO.java
  5. 16
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/constant/ProReTemplateConst.java
  6. 240
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ProReTemplateDetailController.java
  7. 240
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ProReTemplateTankController.java
  8. 89
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/ProReTemplateDetailExcel.java
  9. 64
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/ProReTemplateTankExcel.java
  10. 39
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ProReTemplateDetailMapper.java
  11. 25
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ProReTemplateDetailMapper.xml
  12. 39
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ProReTemplateTankMapper.java
  13. 21
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ProReTemplateTankMapper.xml
  14. 23
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/dto/ProReTemplateDetailDTO.java
  15. 23
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/dto/ProReTemplateTankDTO.java
  16. 112
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplateDetail.java
  17. 75
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/ProReTemplateTank.java
  18. 23
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/ProReTemplateDetailVO.java
  19. 29
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/ProReTemplateTankVO.java
  20. 20
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/ProReTemplateVO.java
  21. 47
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IProReTemplateDetailService.java
  22. 38
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IProReTemplateService.java
  23. 47
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IProReTemplateTankService.java
  24. 72
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ProReTemplateDetailServiceImpl.java
  25. 69
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ProReTemplateServiceImpl.java
  26. 72
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ProReTemplateTankServiceImpl.java
  27. 35
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/ProReTemplateDetailWrapper.java
  28. 35
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/ProReTemplateTankWrapper.java

@ -9,6 +9,9 @@ import org.springblade.resource.service.IAttachService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* todo:有temp桶,成功以后移动到具体业务桶中.
*/
@RestController
@Data
public class AttachClient implements IAttachClient {

@ -0,0 +1,11 @@
package org.springblade.desk.basic.constant;
public interface BAModuleConst {
/**
* 模块前缀
*/
String PREFIX = "BA";
String CONTROLLER_PREFIX = "/BA";
}

@ -1,7 +1,7 @@
package org.springblade.desk.basic.constant;
/**
* 通用字段字段名
* BaseEntity 通用字段字段名
*/
public interface BaseCol {
@ -19,9 +19,9 @@ public interface BaseCol {
String STATUS = "STATUS";
String IS_DELETED = "IS_DELETED";
String SORT = "SORT";
String TENANT_ID = "TENANT_ID";
String IS_DELETED = "IS_DELETED";
}

@ -0,0 +1,41 @@
package org.springblade.desk.basic.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* todo:
*/
@Data
@EqualsAndHashCode()
public class BaseEntityVO {
/**
* 创建[用户]-真名
*/
@Schema(description = "创建[用户]-真名")
private String createUserRealName = "创建[用户]-真名";
/**
* 创建[部门]-部门名
*/
@Schema(description = "创建[部门]-部门名")
private String createDeptName = "";
/**
* 更新[用户]-真名
*/
@Schema(description = "更新用户-真名")
private String updateUserRealName = "更新用户-真名";
/**
* 维护[用户]id
*/
@Schema(description = "维护[用户]id")
private Long keepUser = 0L;
/**
*
*/
@Schema(description = "维护[用户]-真名")
private String keepUserRealName = "维护[用户]-真名";
@Schema(description = "业务状态 名称")
private String statusName;
}

@ -0,0 +1,16 @@
package org.springblade.desk.quality.constant;
public interface ProReTemplateConst {
/**
* 新建
*/
Integer STATUS_NEW = 1;
/**
* 正常使用
*/
Integer STATUS_OK = 2;
/**
* 废弃
*/
Integer STATUS_NO = 3;
}

@ -0,0 +1,240 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.controller;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import lombok.Data;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.annotation.IsAdmin;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.quality.pojo.entity.ProReTemplateDetail;
import org.springblade.desk.quality.pojo.vo.ProReTemplateDetailVO;
import org.springblade.desk.quality.excel.ProReTemplateDetailExcel;
import org.springblade.desk.quality.wrapper.ProReTemplateDetailWrapper;
import org.springblade.desk.quality.service.IProReTemplateDetailService;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant;
import java.util.Map;
import java.util.List;
import java.util.stream.Collectors;
import jakarta.servlet.http.HttpServletResponse;
/**
* [过程记录模板-明细] 控制器
*
* @author Tom Shuo
* @since 2025-12-30
*/
@RestController
@RequestMapping("/ProReTemplateDetail")
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Slf4j
@Tag(name = "[过程记录模板-明细]", description = "[过程记录模板-明细]接口")
public class ProReTemplateDetailController extends BladeController {
@Resource
private IProReTemplateDetailService service;
/**
* [过程记录模板-明细] 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 10)
@Operation(summary = "详情", description = "传入ProReTemplateDetail Obj")
public R<ProReTemplateDetailVO> detail(ProReTemplateDetail proReTemplateDetail) {
QueryWrapper<ProReTemplateDetail> qw = Condition.getQueryWrapper(proReTemplateDetail);
ProReTemplateDetail detail = service.getOne(qw);
ProReTemplateDetailVO detailVO = ProReTemplateDetailWrapper.build().entityVO(detail);
service.setVOValue(detailVO);
return R.data(detailVO);
}
/**
* [过程记录模板-明细] list分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 20)
@Operation(summary = "list分页", description = "传入ProReTemplateDetail Obj")
public R<IPage<ProReTemplateDetailVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> proReTemplateDetail,
Query query) {
QueryWrapper<ProReTemplateDetail> qw = Condition.getQueryWrapper(proReTemplateDetail, ProReTemplateDetail.class);
IPage<ProReTemplateDetail> pages = service.page(Condition.getPage(query), qw);
IPage<ProReTemplateDetailVO> pagesVO = ProReTemplateDetailWrapper.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 = "传入ProReTemplateDetail Obj")
public R<IPage<ProReTemplateDetailVO>> page(ProReTemplateDetailVO proReTemplateDetail, Query query) {
IPage<ProReTemplateDetailVO> pagesVO = service.selectProReTemplateDetailPage(
Condition.getPage(query), proReTemplateDetail
);
return R.data(pagesVO);
}
/**
* [过程记录模板-明细] list下拉选择
*/
@GetMapping("/listForSelect")
@ApiOperationSupport(order = 22)
@Operation(summary = "list下拉选择", description = "")
public R<List<ProReTemplateDetailVO>> listForSelect() {
List<ProReTemplateDetail> list = service.list();
List<ProReTemplateDetailVO> listVO = ProReTemplateDetailWrapper.build().listVO(list);
return R.data(listVO);
}
/**
* [过程记录模板-明细] 新增一条
*/
@PostMapping("/save")
@ApiOperationSupport(order = 30)
@Operation(summary = "新增一条", description = "传入ProReTemplateDetail Obj")
public R save(@Valid @RequestBody ProReTemplateDetail addOne) {
addOne.setId(null);
return R.status(service.save(addOne));
}
/**
* [过程记录模板-明细] 新增批量
*/
@PostMapping("/saveBat")
@ApiOperationSupport(order = 31)
@Operation(summary = "新增批量", description = "传入ProReTemplateDetail List")
public R saveBat(@Valid @RequestBody List<ProReTemplateDetail> addList) {
addList.forEach(one -> {
one.setId(null);
});
return R.status(service.saveBatch(addList));
}
/**
* [过程记录模板-明细] 修改一条
*/
@PostMapping("/update")
@ApiOperationSupport(order = 40)
@Operation(summary = "修改一条", description = "传入ProReTemplateDetail Obj")
public R update(@Valid @RequestBody ProReTemplateDetail updateOne) {
return R.status(service.updateById(updateOne));
}
/**
* [过程记录模板-明细] 修改批量
*/
@PostMapping("/updateBat")
@ApiOperationSupport(order = 41)
@Operation(summary = "修改批量", description = "传入ProReTemplateDetail List")
public R updateBat(@Valid @RequestBody List<ProReTemplateDetail> updateList) {
return R.status(service.updateBatchById(updateList));
}
/**
* [过程记录模板-明细] 新增或修改一条
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 50)
@Operation(summary = "新增或修改一条", description = "传入ProReTemplateDetail Obj")
public R submit(@Valid @RequestBody ProReTemplateDetail mergeOne) {
return R.status(service.saveOrUpdate(mergeOne));
}
/**
* [过程记录模板-明细] 新增或修改批量
*/
@PostMapping("/submitBat")
@ApiOperationSupport(order = 51)
@Operation(summary = "新增或修改批量", description = "传入ProReTemplateDetail List")
public R submitBat(@Valid @RequestBody List<ProReTemplateDetail> 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 = "传入ProReTemplateDetail")
public void exportExcel(@Parameter(hidden = true) @RequestParam Map<String, Object> proReTemplateDetail,
BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<ProReTemplateDetail> qw = Condition.getQueryWrapper(proReTemplateDetail, ProReTemplateDetail.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(ProReTemplateDetail::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(ProReTemplateDetailEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<ProReTemplateDetailExcel> list = service.exportProReTemplateDetail(qw);
ExcelUtil.export(response, "[过程记录模板-明细]数据" + org.springblade.core.tool.utils.DateUtil.time(),
"[过程记录模板-明细]数据表", list, ProReTemplateDetailExcel.class);
}
/**
* [过程记录模板-明细] 下载Excel模板
*/
@GetMapping("/downloadExcelTemplate")
@ApiOperationSupport(order = 71)
@Operation(summary = "下载Excel模板", description = "")
public ResponseEntity<org.springframework.core.io.Resource> 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<ProReTemplateDetail> importList = ExcelUtil.read(
file, 0, 1, ProReTemplateDetail.class
);
return R.status(service.saveBatch(importList));
}
}

@ -0,0 +1,240 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.controller;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import lombok.Data;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.annotation.IsAdmin;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.quality.pojo.entity.ProReTemplateTank;
import org.springblade.desk.quality.pojo.vo.ProReTemplateTankVO;
import org.springblade.desk.quality.excel.ProReTemplateTankExcel;
import org.springblade.desk.quality.wrapper.ProReTemplateTankWrapper;
import org.springblade.desk.quality.service.IProReTemplateTankService;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant;
import java.util.Map;
import java.util.List;
import java.util.stream.Collectors;
import jakarta.servlet.http.HttpServletResponse;
/**
* [过程记录模板--明细] 控制器
*
* @author Tom Shuo
* @since 2025-12-30
*/
@RestController
@RequestMapping("/ProReTemplateTank")
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Slf4j
@Tag(name = "[过程记录模板-槽-明细]", description = "[过程记录模板-槽-明细]接口")
public class ProReTemplateTankController extends BladeController {
@Resource
private IProReTemplateTankService service;
/**
* [过程记录模板--明细] 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 10)
@Operation(summary = "详情", description = "传入ProReTemplateTank Obj")
public R<ProReTemplateTankVO> detail(ProReTemplateTank proReTemplateTank) {
QueryWrapper<ProReTemplateTank> qw = Condition.getQueryWrapper(proReTemplateTank);
ProReTemplateTank detail = service.getOne(qw);
ProReTemplateTankVO detailVO = ProReTemplateTankWrapper.build().entityVO(detail);
service.setVOValue(detailVO);
return R.data(detailVO);
}
/**
* [过程记录模板--明细] list分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 20)
@Operation(summary = "list分页", description = "传入ProReTemplateTank Obj")
public R<IPage<ProReTemplateTankVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> proReTemplateTank,
Query query) {
QueryWrapper<ProReTemplateTank> qw = Condition.getQueryWrapper(proReTemplateTank, ProReTemplateTank.class);
IPage<ProReTemplateTank> pages = service.page(Condition.getPage(query), qw);
IPage<ProReTemplateTankVO> pagesVO = ProReTemplateTankWrapper.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 = "传入ProReTemplateTank Obj")
public R<IPage<ProReTemplateTankVO>> page(ProReTemplateTankVO proReTemplateTank, Query query) {
IPage<ProReTemplateTankVO> pagesVO = service.selectProReTemplateTankPage(
Condition.getPage(query), proReTemplateTank
);
return R.data(pagesVO);
}
/**
* [过程记录模板--明细] list下拉选择
*/
@GetMapping("/listForSelect")
@ApiOperationSupport(order = 22)
@Operation(summary = "list下拉选择", description = "")
public R<List<ProReTemplateTankVO>> listForSelect() {
List<ProReTemplateTank> list = service.list();
List<ProReTemplateTankVO> listVO = ProReTemplateTankWrapper.build().listVO(list);
return R.data(listVO);
}
/**
* [过程记录模板--明细] 新增一条
*/
@PostMapping("/save")
@ApiOperationSupport(order = 30)
@Operation(summary = "新增一条", description = "传入ProReTemplateTank Obj")
public R save(@Valid @RequestBody ProReTemplateTank addOne) {
addOne.setId(null);
return R.status(service.save(addOne));
}
/**
* [过程记录模板--明细] 新增批量
*/
@PostMapping("/saveBat")
@ApiOperationSupport(order = 31)
@Operation(summary = "新增批量", description = "传入ProReTemplateTank List")
public R saveBat(@Valid @RequestBody List<ProReTemplateTank> addList) {
addList.forEach(one -> {
one.setId(null);
});
return R.status(service.saveBatch(addList));
}
/**
* [过程记录模板--明细] 修改一条
*/
@PostMapping("/update")
@ApiOperationSupport(order = 40)
@Operation(summary = "修改一条", description = "传入ProReTemplateTank Obj")
public R update(@Valid @RequestBody ProReTemplateTank updateOne) {
return R.status(service.updateById(updateOne));
}
/**
* [过程记录模板--明细] 修改批量
*/
@PostMapping("/updateBat")
@ApiOperationSupport(order = 41)
@Operation(summary = "修改批量", description = "传入ProReTemplateTank List")
public R updateBat(@Valid @RequestBody List<ProReTemplateTank> updateList) {
return R.status(service.updateBatchById(updateList));
}
/**
* [过程记录模板--明细] 新增或修改一条
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 50)
@Operation(summary = "新增或修改一条", description = "传入ProReTemplateTank Obj")
public R submit(@Valid @RequestBody ProReTemplateTank mergeOne) {
return R.status(service.saveOrUpdate(mergeOne));
}
/**
* [过程记录模板--明细] 新增或修改批量
*/
@PostMapping("/submitBat")
@ApiOperationSupport(order = 51)
@Operation(summary = "新增或修改批量", description = "传入ProReTemplateTank List")
public R submitBat(@Valid @RequestBody List<ProReTemplateTank> 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 = "传入ProReTemplateTank")
public void exportExcel(@Parameter(hidden = true) @RequestParam Map<String, Object> proReTemplateTank,
BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<ProReTemplateTank> qw = Condition.getQueryWrapper(proReTemplateTank, ProReTemplateTank.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(ProReTemplateTank::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(ProReTemplateTankEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<ProReTemplateTankExcel> list = service.exportProReTemplateTank(qw);
ExcelUtil.export(response, "[过程记录模板-槽-明细]数据" + org.springblade.core.tool.utils.DateUtil.time(),
"[过程记录模板-槽-明细]数据表", list, ProReTemplateTankExcel.class);
}
/**
* [过程记录模板--明细] 下载Excel模板
*/
@GetMapping("/downloadExcelTemplate")
@ApiOperationSupport(order = 71)
@Operation(summary = "下载Excel模板", description = "")
public ResponseEntity<org.springframework.core.io.Resource> 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<ProReTemplateTank> importList = ExcelUtil.read(
file, 0, 1, ProReTemplateTank.class
);
return R.status(service.saveBatch(importList));
}
}

@ -0,0 +1,89 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.excel;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import org.springblade.core.mp.base.BaseEntity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import java.io.Serial;
/**
* [过程记录模板-明细] Excel实体类
*
* @author Tom Shuo
* @since 2025-12-30
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class ProReTemplateDetailExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 明细名称
*/
@ColumnWidth(20)
@ExcelProperty("明细名称")
private String detailName;
/**
* 工艺要求
*/
@ColumnWidth(20)
@ExcelProperty("工艺要求")
private String ask;
/**
* 是否合格
*/
@ColumnWidth(20)
@ExcelProperty("是否合格")
private Short qualified;
/**
* [过程记录模板--明细]id
*/
@ColumnWidth(20)
@ExcelProperty("[过程记录模板-槽-明细]id")
private BigDecimal templateTankId;
/**
* 明细序号
*/
@ColumnWidth(20)
@ExcelProperty("明细序号")
private Short detailIndex;
/**
* 时间
*/
@ColumnWidth(20)
@ExcelProperty("时间")
private LocalDateTime rfpdTime;
/**
* 参数名称
*/
@ColumnWidth(20)
@ExcelProperty("参数名称")
private String paramName;
/**
* 参数值
*/
@ColumnWidth(20)
@ExcelProperty("参数值")
private String paramValue;
/**
* 备注
*/
@ColumnWidth(20)
@ExcelProperty("备注")
private String remark;
}

@ -0,0 +1,64 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.excel;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import org.springblade.core.mp.base.BaseEntity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import java.io.Serial;
/**
* [过程记录模板--明细] Excel实体类
*
* @author Tom Shuo
* @since 2025-12-30
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class ProReTemplateTankExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* [过程记录模板]id
*/
@ColumnWidth(20)
@ExcelProperty("[过程记录模板]id")
private BigDecimal templateId;
/**
* 槽号名称
*/
@ColumnWidth(20)
@ExcelProperty("槽号名称")
private String slotName;
/**
* 插入序号
*/
@ColumnWidth(20)
@ExcelProperty("插入序号")
private Short insertIndex;
/**
* 模板类型
*/
@ColumnWidth(20)
@ExcelProperty("模板类型")
private Short rfpsType;
/**
* 槽号序号
*/
@ColumnWidth(20)
@ExcelProperty("槽号序号")
private BigDecimal slotIndex;
}

@ -0,0 +1,39 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.mapper;
import org.springblade.desk.quality.pojo.entity.ProReTemplateDetail;
import org.springblade.desk.quality.pojo.vo.ProReTemplateDetailVO;
import org.springblade.desk.quality.excel.ProReTemplateDetailExcel;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* [过程记录模板-明细] Mapper 接口
*
* @author Tom Shuo
* @since 2025-12-30
*/
public interface ProReTemplateDetailMapper extends BaseMapper<ProReTemplateDetail> {
/**
* 自定义分页
*
* @param page 分页参数
* @param proReTemplateDetail 查询参数
* @return List<ProReTemplateDetailVO>
*/
List<ProReTemplateDetailVO> selectProReTemplateDetailPage(IPage page, ProReTemplateDetailVO proReTemplateDetail);
/**
* 获取导出数据
*
* @param queryWrapper 查询条件
* @return List<ProReTemplateDetailExcel>
*/
List<ProReTemplateDetailExcel> exportProReTemplateDetail(@Param("ew") Wrapper<ProReTemplateDetail> queryWrapper);
}

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.desk.quality.mapper.ProReTemplateDetailMapper">
<!-- 通用查询映射结果 -->
<resultMap id="proReTemplateDetailResultMap" type="org.springblade.desk.quality.pojo.entity.ProReTemplateDetail">
<result column="DETAIL_NAME" property="detailName"/>
<result column="ASK" property="ask"/>
<result column="QUALIFIED" property="qualified"/>
<result column="TEMPLATE_TANK_ID" property="templateTankId"/>
<result column="DETAIL_INDEX" property="detailIndex"/>
<result column="RFPD_TIME" property="rfpdTime"/>
<result column="PARAM_NAME" property="paramName"/>
<result column="PARAM_VALUE" property="paramValue"/>
<result column="REMARK" property="remark"/>
</resultMap>
<select id="selectProReTemplateDetailPage" resultMap="proReTemplateDetailResultMap">
SELECT * FROM QA_PRO_RE_TEMPLATE_DETAIL WHERE is_deleted = 0
</select>
<select id="exportProReTemplateDetail" resultType="org.springblade.desk.quality.excel.ProReTemplateDetailExcel">
SELECT * FROM QA_PRO_RE_TEMPLATE_DETAIL ${ew.customSqlSegment}
</select>
</mapper>

@ -0,0 +1,39 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.mapper;
import org.springblade.desk.quality.pojo.entity.ProReTemplateTank;
import org.springblade.desk.quality.pojo.vo.ProReTemplateTankVO;
import org.springblade.desk.quality.excel.ProReTemplateTankExcel;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* [过程记录模板--明细] Mapper 接口
*
* @author Tom Shuo
* @since 2025-12-30
*/
public interface ProReTemplateTankMapper extends BaseMapper<ProReTemplateTank> {
/**
* 自定义分页
*
* @param page 分页参数
* @param proReTemplateTank 查询参数
* @return List<ProReTemplateTankVO>
*/
List<ProReTemplateTankVO> selectProReTemplateTankPage(IPage page, ProReTemplateTankVO proReTemplateTank);
/**
* 获取导出数据
*
* @param queryWrapper 查询条件
* @return List<ProReTemplateTankExcel>
*/
List<ProReTemplateTankExcel> exportProReTemplateTank(@Param("ew") Wrapper<ProReTemplateTank> queryWrapper);
}

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.desk.quality.mapper.ProReTemplateTankMapper">
<!-- 通用查询映射结果 -->
<resultMap id="proReTemplateTankResultMap" type="org.springblade.desk.quality.pojo.entity.ProReTemplateTank">
<result column="TEMPLATE_ID" property="templateId"/>
<result column="SLOT_NAME" property="slotName"/>
<result column="INSERT_INDEX" property="insertIndex"/>
<result column="RFPS_TYPE" property="rfpsType"/>
<result column="SLOT_INDEX" property="slotIndex"/>
</resultMap>
<select id="selectProReTemplateTankPage" resultMap="proReTemplateTankResultMap">
SELECT * FROM QA_PRO_RE_TEMPLATE_TANK WHERE is_deleted = 0
</select>
<select id="exportProReTemplateTank" resultType="org.springblade.desk.quality.excel.ProReTemplateTankExcel">
SELECT * FROM QA_PRO_RE_TEMPLATE_TANK ${ew.customSqlSegment}
</select>
</mapper>

@ -0,0 +1,23 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.pojo.dto;
import org.springblade.desk.quality.pojo.entity.ProReTemplateDetail;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* [过程记录模板-明细] 数据传输对象实体类
*
* @author Tom Shuo
* @since 2025-12-30
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ProReTemplateDetailDTO extends ProReTemplateDetail {
@Serial
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,23 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.pojo.dto;
import org.springblade.desk.quality.pojo.entity.ProReTemplateTank;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* [过程记录模板--明细] 数据传输对象实体类
*
* @author Tom Shuo
* @since 2025-12-30
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ProReTemplateTankDTO extends ProReTemplateTank {
@Serial
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,112 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.pojo.entity;
import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import org.springblade.core.mp.base.BaseEntity;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* [过程记录模板-明细] 实体类
*
* @author Tom Shuo
* @since 2025-12-30
*/
@Data
@TableName("QA_PRO_RE_TEMPLATE_DETAIL")
@Schema(description = "ProReTemplateDetail Entity对象")
@EqualsAndHashCode(callSuper = true)
public class ProReTemplateDetail extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 明细名称
*/
public static final String COL_DETAIL_NAME = "DETAIL_NAME";
/**
* 工艺要求
*/
public static final String COL_ASK = "ASK";
/**
* 是否合格
*/
public static final String COL_QUALIFIED = "QUALIFIED";
/**
* [过程记录模板--明细]id
*/
public static final String COL_TEMPLATE_TANK_ID = "TEMPLATE_TANK_ID";
/**
* 明细序号
*/
public static final String COL_DETAIL_INDEX = "DETAIL_INDEX";
/**
* 时间
*/
public static final String COL_RFPD_TIME = "RFPD_TIME";
/**
* 参数名称
*/
public static final String COL_PARAM_NAME = "PARAM_NAME";
/**
* 参数值
*/
public static final String COL_PARAM_VALUE = "PARAM_VALUE";
/**
* 备注
*/
public static final String COL_REMARK = "REMARK";
/**
* 明细名称
*/
@Schema(description = "明细名称")
private String detailName;
/**
* 工艺要求
*/
@Schema(description = "工艺要求")
private String ask;
/**
* 是否合格
*/
@Schema(description = "是否合格")
private Short qualified;
/**
* [过程记录模板--明细]id
*/
@Schema(description = "[过程记录模板-槽-明细]id")
private BigDecimal templateTankId;
/**
* 明细序号
*/
@Schema(description = "明细序号")
private Short detailIndex;
/**
* 时间
*/
@Schema(description = "时间")
private LocalDateTime rfpdTime;
/**
* 参数名称
*/
@Schema(description = "参数名称")
private String paramName;
/**
* 参数值
*/
@Schema(description = "参数值")
private String paramValue;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}

@ -0,0 +1,75 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.pojo.entity;
import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import org.springblade.core.mp.base.BaseEntity;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* [过程记录模板--明细] 实体类
*
* @author Tom Shuo
* @since 2025-12-30
*/
@Data
@TableName("QA_PRO_RE_TEMPLATE_TANK")
@Schema(description = "ProReTemplateTank Entity对象")
@EqualsAndHashCode(callSuper = true)
public class ProReTemplateTank extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* [过程记录模板]id
*/
public static final String COL_TEMPLATE_ID = "TEMPLATE_ID";
/**
* 槽号名称
*/
public static final String COL_SLOT_NAME = "SLOT_NAME";
/**
* 插入序号
*/
public static final String COL_INSERT_INDEX = "INSERT_INDEX";
/**
* 模板类型
*/
public static final String COL_RFPS_TYPE = "RFPS_TYPE";
/**
* 槽号序号
*/
public static final String COL_SLOT_INDEX = "SLOT_INDEX";
/**
* [过程记录模板]id
*/
@Schema(description = "[过程记录模板]id")
private BigDecimal templateId;
/**
* 槽号名称
*/
@Schema(description = "槽号名称")
private String slotName;
/**
* 插入序号
*/
@Schema(description = "插入序号")
private Short insertIndex;
/**
* 模板类型
*/
@Schema(description = "模板类型")
private Short rfpsType;
/**
* 槽号序号
*/
@Schema(description = "槽号序号")
private BigDecimal slotIndex;
}

@ -0,0 +1,23 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.pojo.vo;
import org.springblade.desk.quality.pojo.entity.ProReTemplateDetail;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* [过程记录模板-明细] 视图实体类
*
* @author Tom Shuo
* @since 2025-12-30
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ProReTemplateDetailVO extends ProReTemplateDetail {
@Serial
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,29 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import org.springblade.desk.quality.pojo.entity.ProReTemplateTank;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.util.List;
/**
* [过程记录模板--明细] 视图实体类
*
* @author Tom Shuo
* @since 2025-12-30
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ProReTemplateTankVO extends ProReTemplateTank {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "detail 具体明细")
List<ProReTemplateDetailVO> childrenList;
}

@ -6,9 +6,11 @@ package org.springblade.desk.quality.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.desk.basic.pojo.vo.BaseEntityVO;
import org.springblade.desk.quality.pojo.entity.ProReTemplate;
import java.io.Serial;
import java.util.List;
/**
* [过程记录模板] 视图实体类
@ -19,13 +21,15 @@ import java.io.Serial;
@Data
@EqualsAndHashCode(callSuper = true)
public class ProReTemplateVO extends ProReTemplate {
@Serial
private static final long serialVersionUID = 1L;
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "基本信息字段")
private BaseEntityVO base;
@Schema(description = "[作业中心]name")
private String wcName;
@Schema(description = "[工序]name")
private String ppsName;
@Schema(description = "维护人")
private String updateUserRealName;
@Schema(description = "[作业中心]name")
private String wcName;
@Schema(description = "[工序]name")
private String ppsName;
@Schema(description = "tank 槽明细")
private List<ProReTemplateTankVO> preserveSlotList;
}

@ -0,0 +1,47 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.springblade.desk.quality.pojo.entity.ProReTemplateDetail;
import org.springblade.desk.quality.pojo.vo.ProReTemplateDetailVO;
import org.springblade.desk.quality.excel.ProReTemplateDetailExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import java.util.List;
/**
* [过程记录模板-明细] 服务类
*
* @author Tom Shuo
* @since 2025-12-30
*/
public interface IProReTemplateDetailService extends BaseService<ProReTemplateDetail> {
/**
* 自定义分页
*
* @param page 分页参数
* @param proReTemplateDetail 查询参数
* @return IPage<ProReTemplateDetailVO>
*/
IPage<ProReTemplateDetailVO> selectProReTemplateDetailPage(IPage<ProReTemplateDetailVO> page, ProReTemplateDetailVO proReTemplateDetail);
/**
* 导出数据
*
* @param queryWrapper 查询条件
* @return List<ProReTemplateDetailExcel>
*/
List<ProReTemplateDetailExcel> exportProReTemplateDetail(Wrapper<ProReTemplateDetail> queryWrapper);
/**
* VO
*
* @param vo
*/
void setVOValue(ProReTemplateDetailVO vo);
List<ProReTemplateDetailVO> getListByTemplateTankId(Long templateTankId);
}

@ -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.ProReTemplateExcel;
import org.springblade.desk.quality.pojo.entity.ProReTemplate;
import org.springblade.desk.quality.pojo.vo.InspectionTemplateVO;
@ -20,26 +21,31 @@ import java.util.List;
* @since 2025-12-22
*/
public interface IProReTemplateService extends BaseService<ProReTemplate> {
/**
* 自定义分页
*
* @param page 分页参数
* @param proReTemplate 查询参数
* @return IPage<ProReTemplateVO>
*/
IPage<ProReTemplateVO> selectProReTemplatePage(IPage<ProReTemplateVO> page, ProReTemplateVO proReTemplate);
/**
* 自定义分页
*
* @param page 分页参数
* @param proReTemplate 查询参数
* @return IPage<ProReTemplateVO>
*/
IPage<ProReTemplateVO> selectProReTemplatePage(IPage<ProReTemplateVO> page, ProReTemplateVO proReTemplate);
/**
* 导出数据
*
* @param queryWrapper 查询条件
* @return List<ProReTemplateExcel>
*/
List<ProReTemplateExcel> exportProReTemplate(Wrapper<ProReTemplate> queryWrapper);
/**
* 导出数据
*
* @param queryWrapper 查询条件
* @return List<ProReTemplateExcel>
*/
List<ProReTemplateExcel> exportProReTemplate(Wrapper<ProReTemplate> queryWrapper);
/**
* VO
*
* @param vo
*/
void setVOValue(ProReTemplateVO vo);
void setVOValue(ProReTemplateVO vo);
R copy(Long id);
R upgradeVer(Long id);
}

@ -0,0 +1,47 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.springblade.desk.quality.pojo.entity.ProReTemplateTank;
import org.springblade.desk.quality.pojo.vo.ProReTemplateTankVO;
import org.springblade.desk.quality.excel.ProReTemplateTankExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import java.util.List;
/**
* [过程记录模板--明细] 服务类
*
* @author Tom Shuo
* @since 2025-12-30
*/
public interface IProReTemplateTankService extends BaseService<ProReTemplateTank> {
/**
* 自定义分页
*
* @param page 分页参数
* @param proReTemplateTank 查询参数
* @return IPage<ProReTemplateTankVO>
*/
IPage<ProReTemplateTankVO> selectProReTemplateTankPage(IPage<ProReTemplateTankVO> page, ProReTemplateTankVO proReTemplateTank);
/**
* 导出数据
*
* @param queryWrapper 查询条件
* @return List<ProReTemplateTankExcel>
*/
List<ProReTemplateTankExcel> exportProReTemplateTank(Wrapper<ProReTemplateTank> queryWrapper);
/**
* VO
*
* @param vo
*/
void setVOValue(ProReTemplateTankVO vo);
List<ProReTemplateTankVO> getListByTemplateId(Long templateId);
}

@ -0,0 +1,72 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.annotation.Resource;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.quality.excel.ProReTemplateDetailExcel;
import org.springblade.desk.quality.mapper.ProReTemplateDetailMapper;
import org.springblade.desk.quality.pojo.entity.ProReTemplateDetail;
import org.springblade.desk.quality.pojo.entity.ProReTemplateTank;
import org.springblade.desk.quality.pojo.vo.ProReTemplateDetailVO;
import org.springblade.desk.quality.service.IProReTemplateDetailService;
import org.springblade.desk.quality.wrapper.ProReTemplateDetailWrapper;
import org.springblade.desk.quality.wrapper.ProReTemplateTankWrapper;
import org.springblade.system.feign.IUserClient;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* [过程记录模板-明细] 服务实现类
*
* @author Tom Shuo
* @since 2025-12-30
*/
@Service
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Slf4j
public class ProReTemplateDetailServiceImpl extends BaseServiceImpl<ProReTemplateDetailMapper, ProReTemplateDetail>
implements IProReTemplateDetailService {
@Resource
private IUserClient userClient;
@Override
public IPage<ProReTemplateDetailVO> selectProReTemplateDetailPage(IPage<ProReTemplateDetailVO> page, ProReTemplateDetailVO proReTemplateDetail) {
return page.setRecords(baseMapper.selectProReTemplateDetailPage(page, proReTemplateDetail));
}
@Override
public List<ProReTemplateDetailExcel> exportProReTemplateDetail(Wrapper<ProReTemplateDetail> queryWrapper) {
List<ProReTemplateDetailExcel> proReTemplateDetailList = baseMapper.exportProReTemplateDetail(queryWrapper);
//proReTemplateDetailList.forEach(proReTemplateDetail -> {
// proReTemplateDetail.setTypeName(DictCache.getValue(DictEnum.YES_NO, ProReTemplateDetail.getType()));
//});
return proReTemplateDetailList;
}
@Override
public void setVOValue(ProReTemplateDetailVO vo) {
}
@Override
public List<ProReTemplateDetailVO> getListByTemplateTankId(Long templateTankId) {
LambdaQueryWrapper<ProReTemplateDetail> qw = Wrappers.lambdaQuery(ProReTemplateDetail.class);
qw.eq(ProReTemplateDetail::getTemplateTankId, templateTankId);
List<ProReTemplateDetail> list = list(qw);
return ProReTemplateDetailWrapper.build().listVO(list);
}
}

@ -3,6 +3,7 @@
*/
package org.springblade.desk.quality.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jakarta.annotation.Resource;
@ -11,16 +12,24 @@ 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.constant.ProReTemplateConst;
import org.springblade.desk.quality.excel.ProReTemplateExcel;
import org.springblade.desk.quality.mapper.ProReTemplateMapper;
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.ProReTemplateTankVO;
import org.springblade.desk.quality.pojo.vo.ProReTemplateVO;
import org.springblade.desk.quality.service.IProReTemplateDetailService;
import org.springblade.desk.quality.service.IProReTemplateService;
import org.springblade.desk.quality.service.IProReTemplateTankService;
import org.springblade.system.feign.IUserClient;
import org.springframework.stereotype.Service;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
/**
* [过程记录模板] 服务实现类
@ -34,27 +43,55 @@ import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Slf4j
public class ProReTemplateServiceImpl extends BaseServiceImpl<ProReTemplateMapper, ProReTemplate>
implements IProReTemplateService {
implements IProReTemplateService {
@Resource
private IUserClient userClient;
@Resource
private IProReTemplateTankService tankService;
@Resource
private IProReTemplateDetailService detailService;
@Override
public IPage<ProReTemplateVO> selectProReTemplatePage(IPage<ProReTemplateVO> page, ProReTemplateVO proReTemplate) {
return page.setRecords(baseMapper.selectProReTemplatePage(page, proReTemplate));
}
@Override
public IPage<ProReTemplateVO> selectProReTemplatePage(IPage<ProReTemplateVO> page, ProReTemplateVO proReTemplate) {
return page.setRecords(baseMapper.selectProReTemplatePage(page, proReTemplate));
}
@Override
public List<ProReTemplateExcel> exportProReTemplate(Wrapper<ProReTemplate> queryWrapper) {
List<ProReTemplateExcel> proReTemplateList = baseMapper.exportProReTemplate(queryWrapper);
//proReTemplateList.forEach(proReTemplate -> {
// proReTemplate.setTypeName(DictCache.getValue(DictEnum.YES_NO, ProReTemplate.getType()));
//});
return proReTemplateList;
}
@Override
public List<ProReTemplateExcel> exportProReTemplate(Wrapper<ProReTemplate> queryWrapper) {
List<ProReTemplateExcel> proReTemplateList = baseMapper.exportProReTemplate(queryWrapper);
//proReTemplateList.forEach(proReTemplate -> {
// proReTemplate.setTypeName(DictCache.getValue(DictEnum.YES_NO, ProReTemplate.getType()));
//});
return proReTemplateList;
}
@Override
public void setVOValue(ProReTemplateVO vo) {
List<ProReTemplateTankVO> 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<ProReTemplateDetailVO> detailVOList = detailService.getListByTemplateTankId(tankVO.getId());
tankVO.setChildrenList(detailVOList);
}
}
@Override
public void setVOValue(ProReTemplateVO vo) {
@Override
public R copy(Long id) {
ProReTemplate find = getById(id);
ProReTemplate copy = new ProReTemplate();
BeanUtil.copyProperties(find, copy, true);
copy.setId(null);
copy.setStatus(ProReTemplateConst.STATUS_NEW);
return R.status(save(copy));
}
}
@Override
public R upgradeVer(Long id) {
return null;
}
}

@ -0,0 +1,72 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
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.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.annotation.Resource;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.quality.excel.ProReTemplateTankExcel;
import org.springblade.desk.quality.mapper.ProReTemplateTankMapper;
import org.springblade.desk.quality.pojo.entity.ProReTemplateTank;
import org.springblade.desk.quality.pojo.vo.ProReTemplateTankVO;
import org.springblade.desk.quality.service.IProReTemplateTankService;
import org.springblade.desk.quality.wrapper.ProReTemplateTankWrapper;
import org.springblade.system.feign.IUserClient;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* [过程记录模板--明细] 服务实现类
*
* @author Tom Shuo
* @since 2025-12-30
*/
@Service
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Slf4j
public class ProReTemplateTankServiceImpl extends BaseServiceImpl<ProReTemplateTankMapper, ProReTemplateTank>
implements IProReTemplateTankService {
@Resource
private IUserClient userClient;
@Override
public IPage<ProReTemplateTankVO> selectProReTemplateTankPage(IPage<ProReTemplateTankVO> page, ProReTemplateTankVO proReTemplateTank) {
return page.setRecords(baseMapper.selectProReTemplateTankPage(page, proReTemplateTank));
}
@Override
public List<ProReTemplateTankExcel> exportProReTemplateTank(Wrapper<ProReTemplateTank> queryWrapper) {
List<ProReTemplateTankExcel> proReTemplateTankList = baseMapper.exportProReTemplateTank(queryWrapper);
//proReTemplateTankList.forEach(proReTemplateTank -> {
// proReTemplateTank.setTypeName(DictCache.getValue(DictEnum.YES_NO, ProReTemplateTank.getType()));
//});
return proReTemplateTankList;
}
@Override
public void setVOValue(ProReTemplateTankVO vo) {
}
@Override
public List<ProReTemplateTankVO> getListByTemplateId(Long templateId) {
LambdaQueryWrapper<ProReTemplateTank> qw = Wrappers.lambdaQuery(ProReTemplateTank.class);
qw.eq(ProReTemplateTank::getTemplateId, templateId);
List<ProReTemplateTank> list = list(qw);
return ProReTemplateTankWrapper.build().listVO(list);
}
}

@ -0,0 +1,35 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.desk.quality.pojo.entity.ProReTemplateDetail;
import org.springblade.desk.quality.pojo.vo.ProReTemplateDetailVO;
import java.util.Objects;
/**
* [过程记录模板-明细] 包装类,返回视图层所需的字段
*
* @author Tom Shuo
* @since 2025-12-30
*/
public class ProReTemplateDetailWrapper extends BaseEntityWrapper<ProReTemplateDetail, ProReTemplateDetailVO> {
public static ProReTemplateDetailWrapper build() {
return new ProReTemplateDetailWrapper();
}
@Override
public ProReTemplateDetailVO entityVO(ProReTemplateDetail proReTemplateDetail) {
ProReTemplateDetailVO VO = Objects.requireNonNull(BeanUtil.copyProperties(proReTemplateDetail, ProReTemplateDetailVO.class));
//User createUser = UserCache.getUser(proReTemplateDetail.getCreateUser());
//User updateUser = UserCache.getUser(proReTemplateDetail.getUpdateUser());
//proReTemplateDetailVO.setCreateUserName(createUser.getName());
//proReTemplateDetailVO.setUpdateUserName(updateUser.getName());
return VO;
}
}

@ -0,0 +1,35 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.desk.quality.pojo.entity.ProReTemplateTank;
import org.springblade.desk.quality.pojo.vo.ProReTemplateTankVO;
import java.util.Objects;
/**
* [过程记录模板--明细] 包装类,返回视图层所需的字段
*
* @author Tom Shuo
* @since 2025-12-30
*/
public class ProReTemplateTankWrapper extends BaseEntityWrapper<ProReTemplateTank, ProReTemplateTankVO> {
public static ProReTemplateTankWrapper build() {
return new ProReTemplateTankWrapper();
}
@Override
public ProReTemplateTankVO entityVO(ProReTemplateTank proReTemplateTank) {
ProReTemplateTankVO VO = Objects.requireNonNull(BeanUtil.copyProperties(proReTemplateTank, ProReTemplateTankVO.class));
//User createUser = UserCache.getUser(proReTemplateTank.getCreateUser());
//User updateUser = UserCache.getUser(proReTemplateTank.getUpdateUser());
//proReTemplateTankVO.setCreateUserName(createUser.getName());
//proReTemplateTankVO.setUpdateUserName(updateUser.getName());
return VO;
}
}
Loading…
Cancel
Save