试验项目周期,添加若干搜索条件。

develop-QA
Tom Li 3 months ago
parent 0fe3e9fb3a
commit 191ddf0df8
  1. 14
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/CycleTestSearch.java
  2. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/CycleTestVO.java
  3. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/AuditFileController.java
  4. 32
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestController.java
  5. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/CycleTestMapper.java
  6. 76
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/CycleTestMapper.xml
  7. 17
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService2.java
  8. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ICycleTestService.java
  9. 15
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/CycleTestServiceImpl.java

@ -0,0 +1,14 @@
package org.springblade.desk.quality.pojo.request;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springblade.desk.quality.pojo.entity.CycleTest;
import org.springblade.desk.quality.pojo.vo.CycleTestVO;
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class CycleTestSearch extends CycleTestVO {
}

@ -6,6 +6,7 @@ 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 lombok.ToString;
import org.springblade.desk.quality.pojo.entity.CycleTest; import org.springblade.desk.quality.pojo.entity.CycleTest;
import java.io.Serial; import java.io.Serial;
@ -18,6 +19,7 @@ import java.io.Serial;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class CycleTestVO extends CycleTest { public class CycleTestVO extends CycleTest {
@Serial @Serial

@ -84,7 +84,6 @@ public class AuditFileController extends BladeController {
Query query) { Query query) {
// QueryWrapper<AuditFile> qw = Condition.getQueryWrapper(map, AuditFile.class); // QueryWrapper<AuditFile> qw = Condition.getQueryWrapper(map, AuditFile.class);
AuditFileSearch search = BeanUtil.toBeanIgnoreError(map, AuditFileSearch.class); AuditFileSearch search = BeanUtil.toBeanIgnoreError(map, AuditFileSearch.class);
log.info("search = " + search);
IPage<AuditFile> pages = service.listSearch(Condition.getPage(query), search); IPage<AuditFile> pages = service.listSearch(Condition.getPage(query), search);
IPage<AuditFileVO> pagesVO = AuditFileWrapper.build().pageVO(pages); IPage<AuditFileVO> pagesVO = AuditFileWrapper.build().pageVO(pages);
pagesVO.getRecords() pagesVO.getRecords()

@ -3,6 +3,7 @@
*/ */
package org.springblade.desk.quality.controller; package org.springblade.desk.quality.controller;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@ -22,14 +23,15 @@ import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.BladeUser;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
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.QAModuleConst; import org.springblade.desk.quality.constant.QAModuleConst;
import org.springblade.desk.quality.excel.CycleTestExcel; import org.springblade.desk.quality.excel.CycleTestExcel;
import org.springblade.desk.quality.pojo.entity.AuditFile;
import org.springblade.desk.quality.pojo.entity.CycleTest; import org.springblade.desk.quality.pojo.entity.CycleTest;
import org.springblade.desk.quality.pojo.request.CycleTestBatUpdateCycle; import org.springblade.desk.quality.pojo.request.CycleTestBatUpdateCycle;
import org.springblade.desk.quality.pojo.request.CycleTestSearch;
import org.springblade.desk.quality.pojo.request.CycleTestSubmit; import org.springblade.desk.quality.pojo.request.CycleTestSubmit;
import org.springblade.desk.quality.pojo.vo.CycleTestVO; import org.springblade.desk.quality.pojo.vo.CycleTestVO;
import org.springblade.desk.quality.service.CycleTestService2; import org.springblade.desk.quality.service.CycleTestService2;
@ -42,6 +44,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* [周期试验] 控制器 * [周期试验] 控制器
@ -50,11 +53,11 @@ import java.util.Map;
* @since 2025-11-17 * @since 2025-11-17
*/ */
@RestController @RestController
@RequestMapping(QAModuleConst.CONTROLLER_PREFIX + "/CycleTest")
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Slf4j @Slf4j
@RequestMapping(QAModuleConst.CONTROLLER_PREFIX + "/CycleTest")
@Tag(name = "[QA][周期试验]", description = "[周期试验]接口") @Tag(name = "[QA][周期试验]", description = "[周期试验]接口")
public class CycleTestController extends BladeController { public class CycleTestController extends BladeController {
@ -82,9 +85,17 @@ public class CycleTestController extends BladeController {
@GetMapping("/list") @GetMapping("/list")
@ApiOperationSupport(order = 2) @ApiOperationSupport(order = 2)
@Operation(summary = "list分页", description = "传入cycleTest") @Operation(summary = "list分页", description = "传入cycleTest")
public R<IPage<CycleTestVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> cycleTest, public R<IPage<CycleTestVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> map,
Query query) { Query query) {
return service2.list(cycleTest, query); // 填充bean
CycleTestSearch search = BeanUtil.toBeanIgnoreError(map, CycleTestSearch.class);
log.info("search = " + search);
IPage<CycleTestVO> pagesVO = service.listSearch(Condition.getPage(query), search);
pagesVO.getRecords()
.stream()
.peek(service2::setVOValue)
.collect(Collectors.toList());
return R.data(pagesVO);
} }
/** /**
@ -187,15 +198,20 @@ public class CycleTestController extends BladeController {
@GetMapping("/export-excel") @GetMapping("/export-excel")
@ApiOperationSupport(order = 8) @ApiOperationSupport(order = 8)
@Operation(summary = "导出数据", description = "传入cycleTest") @Operation(summary = "导出数据", description = "传入cycleTest")
public void exportCycleTest(@Parameter(hidden = true) @RequestParam Map<String, Object> cycleTest, public void exportCycleTest(@Parameter(hidden = true) @RequestParam Map<String, Object> map,
BladeUser bladeUser, HttpServletResponse response) { BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<CycleTest> queryWrapper = Condition.getQueryWrapper(cycleTest, CycleTest.class); // QueryWrapper<CycleTest> queryWrapper = Condition.getQueryWrapper(cycleTest, CycleTest.class);
//if (!AuthUtil.isAdministrator()) { //if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(CycleTest::getTenantId, bladeUser.getTenantId()); // queryWrapper.lambda().eq(CycleTest::getTenantId, bladeUser.getTenantId());
//} //}
//queryWrapper.lambda().eq(CycleTestEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); //queryWrapper.lambda().eq(CycleTestEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<CycleTestVO> listVO = service2.listWithoutPage(cycleTest); CycleTestSearch search = BeanUtil.toBeanIgnoreError(map, CycleTestSearch.class);
List<CycleTestExcel> listExcel = BeanUtil.copyProperties(listVO, CycleTestExcel.class); log.info("search = " + search);
List<CycleTestVO> listVO = service.listSearchWithoutPage(search);
listVO.stream()
.peek(service2::setVOValue)
.collect(Collectors.toList());
List<CycleTestExcel> listExcel = BeanUtil.copyToList(listVO, CycleTestExcel.class);
ExcelUtil.export(response, "[周期试验]数据" + DateUtil.time(), ExcelUtil.export(response, "[周期试验]数据" + DateUtil.time(),
"[周期试验]数据表", listExcel, CycleTestExcel.class); "[周期试验]数据表", listExcel, CycleTestExcel.class);
} }

@ -9,7 +9,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springblade.desk.quality.excel.CycleTestExcel; import org.springblade.desk.quality.excel.CycleTestExcel;
import org.springblade.desk.quality.pojo.entity.CycleTest; import org.springblade.desk.quality.pojo.entity.CycleTest;
import org.springblade.desk.quality.pojo.request.CycleTestSearch;
import org.springblade.desk.quality.pojo.vo.CycleTestVO; import org.springblade.desk.quality.pojo.vo.CycleTestVO;
import org.springblade.desk.quality.pojo.vo.InspectionTaskListVO;
import java.util.List; import java.util.List;
@ -37,4 +39,8 @@ public interface CycleTestMapper extends BaseMapper<CycleTest> {
* @return List<CycleTestExcel> * @return List<CycleTestExcel>
*/ */
List<CycleTestExcel> exportCycleTest(@Param("ew") Wrapper<CycleTest> queryWrapper); List<CycleTestExcel> exportCycleTest(@Param("ew") Wrapper<CycleTest> queryWrapper);
List<CycleTestVO> listSearch(IPage<CycleTestVO> page, @Param("q") CycleTestSearch q);
List<CycleTestVO> listSearchWithoutPage(@Param("q") CycleTestSearch q);
} }

@ -42,7 +42,7 @@
<select id="selectCycleTestPage" resultMap="cycleTestResultMap"> <select id="selectCycleTestPage" resultMap="cycleTestResultMap">
SELECT * SELECT *
FROM QA_CYCLE_TEST FROM QA_CYCLE_TEST
WHERE is_deleted = 0 WHERE IS_DELETED = 0
<if test="q.cycleTestItemId != null and q.cycleTestItemId != 0"> <if test="q.cycleTestItemId != null and q.cycleTestItemId != 0">
AND CYCLE_TEST_ITEM_ID = #{q.cycleTestItemId} AND CYCLE_TEST_ITEM_ID = #{q.cycleTestItemId}
</if> </if>
@ -54,4 +54,78 @@
SELECT * SELECT *
FROM QA_CYCLE_TEST ${ew.customSqlSegment} FROM QA_CYCLE_TEST ${ew.customSqlSegment}
</select> </select>
<select id="listSearch"
resultType="org.springblade.desk.quality.pojo.vo.CycleTestVO">
SELECT t.*
FROM QA_CYCLE_TEST t
-- 用户 bl_user
LEFT JOIN BLADE_USER bl_user on t.PROCESS_USER_ID = bl_user.ID
-- 试验项目 item
LEFT JOIN QA_CYCLE_TEST_ITEM item ON t.CYCLE_TEST_ITEM_ID = item.ID
-- 试验标准 std
LEFT JOIN QA_CYCLE_TEST_STANDARD std ON item.CYCLE_TEST_STANDARD_ID = std.ID
WHERE (
t.IS_DELETED = 0
)
<if test="q.cycleTestItemId != null">
AND t.CYCLE_TEST_ITEM_ID = #{q.cycleTestItemId}
</if>
<if test="q.plateId != null and q.plateId != ''">
AND ',' || t.PLATE_IDS || ',' LIKE '%,' || #{q.plateId} || ',%'
</if>
<if test="q.testType != null and q.testType != 0">
AND t.TEST_TYPE = #{q.testType}
</if>
<if test="q.cycleTestItemCondition != null and q.cycleTestItemCondition != ''">
AND item.CONDITION LIKE '%' || #{q.cycleTestItemCondition} || '%'
</if>
<if test="q.cycleTestStandardName != null and q.cycleTestStandardName != ''">
AND std.NAME = '%' || #{q.cycleTestStandardName} || '%'
</if>
<if test="q.processUserId != null">
AND t.PROCESS_USER_ID = #{q.processUserId}
</if>
<if test="q.jobType != null">
AND t.JOB_TYPE = #{q.jobType}
</if>
ORDER BY t.ID DESC
</select>
<select id="listSearchWithoutPage"
resultType="org.springblade.desk.quality.pojo.vo.CycleTestVO">
SELECT t.*
FROM QA_CYCLE_TEST t
-- 用户 bl_user
LEFT JOIN BLADE_USER bl_user on t.PROCESS_USER_ID = bl_user.ID
-- 试验项目 item
LEFT JOIN QA_CYCLE_TEST_ITEM item ON t.CYCLE_TEST_ITEM_ID = item.ID
-- 试验标准 std
LEFT JOIN QA_CYCLE_TEST_STANDARD std ON item.CYCLE_TEST_STANDARD_ID = std.ID
WHERE (
t.IS_DELETED = 0
)
<if test="q.cycleTestItemId != null">
AND t.CYCLE_TEST_ITEM_ID = #{q.cycleTestItemId}
</if>
<if test="q.plateId != null and q.plateId != ''">
AND ',' || t.PLATE_IDS || ',' LIKE '%,' || #{q.plateId} || ',%'
</if>
<if test="q.testType != null and q.testType != 0">
AND t.TEST_TYPE = #{q.testType}
</if>
<if test="q.cycleTestItemCondition != null and q.cycleTestItemCondition != ''">
AND item.CONDITION LIKE '%' || #{q.cycleTestItemCondition} || '%'
</if>
<if test="q.cycleTestStandardName != null and q.cycleTestStandardName != ''">
AND std.NAME = '%' || #{q.cycleTestStandardName} || '%'
</if>
<if test="q.processUserId != null">
AND t.PROCESS_USER_ID = #{q.processUserId}
</if>
<if test="q.jobType != null">
AND t.JOB_TYPE = #{q.jobType}
</if>
ORDER BY t.ID DESC
</select>
</mapper> </mapper>

@ -20,6 +20,7 @@ import org.springblade.desk.quality.pojo.entity.CycleTest;
import org.springblade.desk.quality.pojo.entity.CycleTestItem; 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.CycleTestBatUpdateCycle; import org.springblade.desk.quality.pojo.request.CycleTestBatUpdateCycle;
import org.springblade.desk.quality.pojo.request.CycleTestSearch;
import org.springblade.desk.quality.pojo.request.JobExt; import org.springblade.desk.quality.pojo.request.JobExt;
import org.springblade.desk.quality.pojo.vo.CycleTestVO; import org.springblade.desk.quality.pojo.vo.CycleTestVO;
import org.springblade.desk.quality.pojo.vo.CycleTestStandardVO; import org.springblade.desk.quality.pojo.vo.CycleTestStandardVO;
@ -129,22 +130,6 @@ public class CycleTestService2 {
return R.success("批量设置试验周期成功"); return R.success("批量设置试验周期成功");
} }
/**
* list
*
* @param cycleTest
* @param query
* @return
*/
public R<IPage<CycleTestVO>> list(Map<String, Object> cycleTest, Query query) {
QueryWrapper<CycleTest> qw = Condition.getQueryWrapper(cycleTest, CycleTest.class);
qw.orderByAsc(BaseCol.ID);
IPage<CycleTest> pages = service.page(Condition.getPage(query), qw);
IPage<CycleTestVO> pagesVO = CycleTestWrapper.build().pageVO(pages);
pagesVO.getRecords().stream().peek(this::setVOValue).collect(Collectors.toList());
return R.data(pagesVO);
}
/** /**
* list 不分页 * list 不分页
* *

@ -10,6 +10,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.desk.quality.excel.CycleTestExcel; import org.springblade.desk.quality.excel.CycleTestExcel;
import org.springblade.desk.quality.excel.CycleTestExcelImport; import org.springblade.desk.quality.excel.CycleTestExcelImport;
import org.springblade.desk.quality.pojo.entity.CycleTest; import org.springblade.desk.quality.pojo.entity.CycleTest;
import org.springblade.desk.quality.pojo.request.CycleTestSearch;
import org.springblade.desk.quality.pojo.request.CycleTestSubmit; import org.springblade.desk.quality.pojo.request.CycleTestSubmit;
import org.springblade.desk.quality.pojo.vo.CycleTestVO; import org.springblade.desk.quality.pojo.vo.CycleTestVO;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -41,6 +42,10 @@ public interface ICycleTestService extends BaseService<CycleTest> {
*/ */
List<CycleTestExcel> exportCycleTest(Wrapper<CycleTest> queryWrapper); List<CycleTestExcel> exportCycleTest(Wrapper<CycleTest> queryWrapper);
IPage<CycleTestVO> listSearch(IPage<CycleTestVO> page, CycleTestSearch search);
List<CycleTestVO> listSearchWithoutPage(CycleTestSearch search);
/** /**
* VO * VO
* *

@ -14,6 +14,8 @@ import lombok.EqualsAndHashCode;
import lombok.SneakyThrows; import lombok.SneakyThrows;
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.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.config.RoleConfig; import org.springblade.desk.basic.config.RoleConfig;
@ -23,6 +25,7 @@ import org.springblade.desk.quality.excel.listener.in.CycleTestListener;
import org.springblade.desk.quality.mapper.CycleTestMapper; import org.springblade.desk.quality.mapper.CycleTestMapper;
import org.springblade.desk.quality.pojo.entity.CycleTest; import org.springblade.desk.quality.pojo.entity.CycleTest;
import org.springblade.desk.quality.pojo.entity.CycleTestItem; import org.springblade.desk.quality.pojo.entity.CycleTestItem;
import org.springblade.desk.quality.pojo.request.CycleTestSearch;
import org.springblade.desk.quality.pojo.request.CycleTestSubmit; import org.springblade.desk.quality.pojo.request.CycleTestSubmit;
import org.springblade.desk.quality.pojo.vo.CycleTestVO; import org.springblade.desk.quality.pojo.vo.CycleTestVO;
import org.springblade.desk.quality.service.ICycleTestItemService; import org.springblade.desk.quality.service.ICycleTestItemService;
@ -35,6 +38,8 @@ import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* [周期试验] 服务实现类 * [周期试验] 服务实现类
@ -73,6 +78,16 @@ public class CycleTestServiceImpl extends BaseServiceImpl<CycleTestMapper, Cycle
return cycleTestList; return cycleTestList;
} }
@Override
public IPage<CycleTestVO> listSearch(IPage<CycleTestVO> page, CycleTestSearch search) {
return page.setRecords(baseMapper.listSearch(page, search));
}
@Override
public List<CycleTestVO> listSearchWithoutPage(CycleTestSearch search) {
return baseMapper.listSearchWithoutPage(search);
}
@Override @Override
public void setVOValue(CycleTestVO vo) { public void setVOValue(CycleTestVO vo) {

Loading…
Cancel
Save