联调 周期试验任务 相关。

develop-QA
Tom Li 5 months ago
parent cdef7d18ad
commit 9c9a13e5f3
  1. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/constant/CycleTestItemConst.java
  2. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/constant/CycleTestTaskConst.java
  3. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/constant/InspectionTaskConst.java
  4. 37
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestItemController.java
  5. 157
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestStandardController.java
  6. 19
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestTaskController.java
  7. 63
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/gen/CycleTestStandardGenExcel.java
  8. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/gen/CycleTestItemGenMapper.java
  9. 40
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/gen/CycleTestStandardGenMapper.java
  10. 30
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/gen/CycleTestStandardGenMapper.xml
  11. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/package-info.java
  12. 24
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/dto/gen/CycleTestStandardGenDTO.java
  13. 17
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTestItem.java
  14. 75
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTestStandard.java
  15. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTestTask.java
  16. 708
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTask.java
  17. 22
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/request/CycleTestItemSubmit.java
  18. 19
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/CycleTestItemStandardVO.java
  19. 17
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestGenVO.java
  20. 27
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestItemGenVO.java
  21. 24
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestStandardGenVO.java
  22. 20
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestTaskGenVO.java
  23. 127
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestItemService.java
  24. 26
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService.java
  25. 58
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestStandardService.java
  26. 85
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService.java
  27. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/TestService.java
  28. 31
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/gen/ICycleTestItemGenService.java
  29. 39
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/gen/ICycleTestStandardGenService.java
  30. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/gen/CycleTestItemGenServiceImpl.java
  31. 42
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/gen/CycleTestStandardGenServiceImpl.java
  32. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/CycleTestTaskUtil.java
  33. 36
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/gen/CycleTestStandardGenWrapper.java

@ -0,0 +1,5 @@
package org.springblade.desk.quality.constant;
public interface CycleTestItemConst {
}

@ -30,4 +30,13 @@ public interface CycleTestTaskConst {
* 已超期
*/
Integer STATE_TIMEOUT = 9;
/**
* 字典key-试验件
*/
String DICT_TEST_PIECE = "testPiece";
/**
* 字典key-任务状态
*/
String DICT_STATUS = "CycleTestTask-Status";
}

@ -2,14 +2,13 @@ package org.springblade.desk.quality.constant;
public interface InspectionTaskConst {
/**
* 热表
*/
Integer TYPE_1 = 1;
Integer TYPE_RB = 1;
/**
* 烧结
*/
Integer TYPE_2 = 2;
Integer TYPE_SJ = 2;
}

@ -25,16 +25,16 @@ import org.springblade.core.secure.BladeUser;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.quality.constant.BaseCol;
import org.springblade.desk.quality.constant.ExcelConst;
import org.springblade.desk.quality.excel.gen.CycleTestItemGenExcel;
import org.springblade.desk.quality.pojo.entity.CycleTestItem;
import org.springblade.desk.quality.pojo.vo.CycleTestItemStandardVO;
import org.springblade.desk.quality.pojo.request.CycleTestItemSubmit;
import org.springblade.desk.quality.pojo.vo.gen.CycleTestItemGenVO;
import org.springblade.desk.quality.service.CycleTestItemService;
import org.springblade.desk.quality.service.gen.ICycleTestItemGenService;
import org.springblade.desk.quality.util.ExcelExtUtil;
import org.springblade.desk.quality.wrapper.gen.CycleTestItemGenWrapper;
import org.springblade.desk.quality.wrapper.gen.CycleTestTaskGenWrapper;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -70,7 +70,9 @@ public class CycleTestItemController extends BladeController {
@Operation(summary = "详情", description = "传入cycleTestItem")
public R<CycleTestItemGenVO> detail(CycleTestItem cycleTestItem) {
CycleTestItem detail = genService.getOne(Condition.getQueryWrapper(cycleTestItem));
return R.data(CycleTestItemGenWrapper.build().entityVO(detail));
CycleTestItemGenVO vo = CycleTestItemGenWrapper.build().entityVO(detail);
service.setVoValue(vo);
return R.data(vo);
}
/**
@ -82,12 +84,7 @@ public class CycleTestItemController extends BladeController {
public R<IPage<CycleTestItemGenVO>> list(
@Parameter(hidden = true) @RequestParam Map<String, Object> cycleTestItem,
Query query) {
IPage<CycleTestItem> pages = genService.page(
Condition.getPage(query),
Condition.getQueryWrapper(cycleTestItem, CycleTestItem.class)
.orderByAsc(BaseCol.ID)
);
return R.data(CycleTestItemGenWrapper.build().pageVO(pages));
return service.list(cycleTestItem, query);
}
@ -98,11 +95,7 @@ public class CycleTestItemController extends BladeController {
@ApiOperationSupport(order = 3)
@Operation(summary = "page分页", description = "传入cycleTestItem")
public R<IPage<CycleTestItemGenVO>> page(CycleTestItemGenVO cycleTestItem, Query query) {
IPage<CycleTestItemGenVO> pages = genService.selectCycleTestItemPage(
Condition.getPage(query),
cycleTestItem
);
return R.data(pages);
return service.page(cycleTestItem, query);
}
/**
@ -111,9 +104,8 @@ public class CycleTestItemController extends BladeController {
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@Operation(summary = "新增", description = "传入cycleTestItem")
public R save(@Valid @RequestBody CycleTestItem cycleTestItem) {
cycleTestItem.setId(null);
return R.status(genService.save(cycleTestItem));
public R save(@Valid @RequestBody CycleTestItemSubmit submit) {
return service.save(submit);
}
/**
@ -122,8 +114,8 @@ public class CycleTestItemController extends BladeController {
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入cycleTestItem")
public R update(@Valid @RequestBody CycleTestItem cycleTestItem) {
return R.status(genService.updateById(cycleTestItem));
public R update(@Valid @RequestBody CycleTestItemSubmit submit) {
return service.update(submit);
}
/**
@ -214,11 +206,4 @@ public class CycleTestItemController extends BladeController {
public R<List<CycleTestItem>> listForSelect() {
return service.listForSelect();
}
@GetMapping("/listForSelectStandard")
@ApiOperationSupport(order = 12)
@Operation(summary = "list下拉选择试验标准", description = "")
public R<List<CycleTestItemStandardVO>> listForSelectStandard() {
return service.listForSelectStandard();
}
}

@ -0,0 +1,157 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.annotation.IsAdmin;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.pojo.entity.Formula;
import org.springblade.desk.basic.pojo.vo.gen.FormulaGenVO;
import org.springblade.desk.basic.wrapper.gen.FormulaGenWrapper;
import org.springblade.desk.quality.excel.gen.CycleTestStandardGenExcel;
import org.springblade.desk.quality.pojo.entity.CycleTestStandard;
import org.springblade.desk.quality.pojo.vo.gen.CycleTestStandardGenVO;
import org.springblade.desk.quality.service.CycleTestStandardService;
import org.springblade.desk.quality.service.gen.ICycleTestStandardGenService;
import org.springblade.desk.quality.wrapper.gen.CycleTestStandardGenWrapper;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* [周期试验标准] 控制器
*
* @author Tom Shuo
* @since 2025-11-28
*/
@RestController
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@RequestMapping("/QA/CycleTestStandard")
@Tag(name = "[周期试验标准]", description = "[周期试验标准]接口")
public class CycleTestStandardController extends BladeController {
@Resource
private ICycleTestStandardGenService genService;
@Resource
private CycleTestStandardService service;
/**
* [周期试验标准] 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入CycleTestStandard")
public R<CycleTestStandardGenVO> detail(CycleTestStandard cycleTestStandard) {
CycleTestStandard detail = genService.getOne(Condition.getQueryWrapper(cycleTestStandard));
return R.data(CycleTestStandardGenWrapper.build().entityVO(detail));
}
/**
* [周期试验标准] 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "传入CycleTestStandard")
public R<IPage<CycleTestStandardGenVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> cycleTestStandard, Query query) {
IPage<CycleTestStandard> pages = genService.page(Condition.getPage(query), Condition.getQueryWrapper(cycleTestStandard, CycleTestStandard.class));
return R.data(CycleTestStandardGenWrapper.build().pageVO(pages));
}
/**
* [周期试验标准] 自定义分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@Operation(summary = "分页", description = "传入CycleTestStandard")
public R<IPage<CycleTestStandard>> page(CycleTestStandardGenVO cycleTestStandard, Query query) {
IPage<CycleTestStandard> pages = genService.selectCycleTestStandardPage(Condition.getPage(query), cycleTestStandard);
return R.data(pages);
}
/**
* [周期试验标准] 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@Operation(summary = "新增", description = "传入CycleTestStandard")
public R save(@Valid @RequestBody CycleTestStandard cycleTestStandard) {
return R.status(genService.save(cycleTestStandard));
}
/**
* [周期试验标准] 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入CycleTestStandard")
public R update(@Valid @RequestBody CycleTestStandard cycleTestStandard) {
return R.status(genService.updateById(cycleTestStandard));
}
/**
* [周期试验标准] 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入CycleTestStandard")
public R submit(@Valid @RequestBody CycleTestStandard cycleTestStandard) {
return R.status(genService.saveOrUpdate(cycleTestStandard));
}
/**
* [周期试验标准] 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(genService.deleteLogic(Func.toLongList(ids)));
}
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export-excel")
@ApiOperationSupport(order = 8)
@Operation(summary = "导出数据", description = "传入CycleTestStandard")
public void exportCycleTestStandard(@Parameter(hidden = true) @RequestParam Map<String, Object> cycleTestStandard, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<CycleTestStandard> queryWrapper = Condition.getQueryWrapper(cycleTestStandard, CycleTestStandard.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(CycleTestStandard::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(CycleTestStandardEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<CycleTestStandardGenExcel> list = genService.exportCycleTestStandard(queryWrapper);
ExcelUtil.export(response, "[周期试验标准]数据" + DateUtil.time(), "[周期试验标准]数据表", list, CycleTestStandardGenExcel.class);
}
@GetMapping("/listForSelect")
@ApiOperationSupport(order = 9)
@Operation(summary = "list下拉选择", description = "")
public R<List<CycleTestStandard>> listForSelect() {
return service.listForSelect();
}
}

@ -67,7 +67,9 @@ public class CycleTestTaskController extends BladeController {
@Operation(summary = "详情", description = "传入cycleTestTask")
public R<CycleTestTaskGenVO> detail(CycleTestTask cycleTestTask) {
CycleTestTask detail = cycleTestTaskGenService.getOne(Condition.getQueryWrapper(cycleTestTask));
return R.data(CycleTestTaskGenWrapper.build().entityVO(detail));
CycleTestTaskGenVO vo = CycleTestTaskGenWrapper.build().entityVO(detail);
service.setVoValue(vo);
return R.data(vo);
}
/**
@ -188,8 +190,17 @@ public class CycleTestTaskController extends BladeController {
@ApiOperationSupport(order = 12)
@Operation(summary = "填报", description = "")
public R fill(@Parameter(description = "主键", required = true) @RequestParam Long id,
@Parameter(description = "试验时间", required = true) @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate testDate,
@Parameter(description = "试验结果", required = true) @RequestParam Long testAttachId) {
return service.fill(id, testDate, testAttachId);
@Parameter(description = "是否进行试验-[1]:试验;[2]:不试验;", required = true) @RequestParam Integer isDone,
@Parameter(description = "试验时间") @RequestParam(required = false, defaultValue = "") @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate testDate,
@Parameter(description = "试验结果") @RequestParam(required = false, defaultValue = "0") Long testAttachId,
@Parameter(description = "不试验原因") @RequestParam(required = false, defaultValue = "") String reasonForNo) {
return service.fill(id, isDone, testDate, testAttachId, reasonForNo);
}
// @PostMapping("/test")
// @ApiOperationSupport(order = 12)
// @Operation(summary = "test", description = "")
// public R test() {
// return service.testMinio();
// }
}

@ -0,0 +1,63 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.excel.gen;
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 lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* [周期试验标准] Excel实体类
*
* @author Tom Shuo
* @since 2025-11-28
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class CycleTestStandardGenExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 编码
*/
@ColumnWidth(20)
@ExcelProperty("编码")
private String code;
/**
* 名称
*/
@ColumnWidth(20)
@ExcelProperty("名称")
private String name;
/**
* 排序
*/
@ColumnWidth(20)
@ExcelProperty("排序")
private Long sort;
/**
* 备注
*/
@ColumnWidth(20)
@ExcelProperty("备注")
private String remark;
/**
* [周期试验标准][附件]id
*/
@ColumnWidth(20)
@ExcelProperty("[周期试验标准][附件]id")
private BigDecimal standardAttachId;
}

@ -28,7 +28,7 @@ public interface CycleTestItemGenMapper extends BaseMapper<CycleTestItem> {
* @param q 查询参数
* @return List<CycleTestItemVO>
*/
List<CycleTestItemGenVO> selectCycleTestItemPage(IPage page, CycleTestItemGenVO q);
List<CycleTestItem> selectCycleTestItemPage(IPage page, CycleTestItemGenVO q);
/**
* 获取导出数据

@ -0,0 +1,40 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.mapper.gen;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.desk.quality.excel.gen.CycleTestStandardGenExcel;
import org.springblade.desk.quality.pojo.entity.CycleTestStandard;
import org.springblade.desk.quality.pojo.vo.gen.CycleTestStandardGenVO;
import java.util.List;
/**
* [周期试验标准] Mapper 接口
*
* @author Tom Shuo
* @since 2025-11-28
*/
public interface CycleTestStandardGenMapper extends BaseMapper<CycleTestStandard> {
/**
* 自定义分页
*
* @param page 分页参数
* @param q 查询参数
* @return List<CycleTestStandardVO>
*/
List<CycleTestStandard> selectCycleTestStandardPage(IPage page, CycleTestStandardGenVO q);
/**
* 获取导出数据
*
* @param queryWrapper 查询条件
* @return List<CycleTestStandardExcel>
*/
List<CycleTestStandardGenExcel> exportCycleTestStandard(@Param("ew") Wrapper<CycleTestStandard> queryWrapper);
}

@ -0,0 +1,30 @@
<?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.gen.CycleTestStandardGenMapper">
<!-- 通用查询映射结果 -->
<resultMap id="cycleTestStandardResultMap"
type="org.springblade.desk.quality.pojo.entity.CycleTestStandard">
<result column="CODE" property="code"/>
<result column="NAME" property="name"/>
<result column="SORT" property="sort"/>
<result column="REMARK" property="remark"/>
<result column="STANDARD_ATTACH_ID" property="standardAttachId"/>
</resultMap>
<select id="selectCycleTestStandardPage" resultMap="cycleTestStandardResultMap">
SELECT *
FROM QA_CYCLE_TEST_STANDARD
WHERE is_deleted = 0
<if test="q.name != null and q.name != ''">
AND NAME = #{q.name}
</if>
</select>
<select id="exportCycleTestStandard"
resultType="org.springblade.desk.quality.excel.gen.CycleTestStandardGenExcel">
SELECT *
FROM QA_CYCLE_TEST_STANDARD ${ew.customSqlSegment}
</select>
</mapper>

@ -55,7 +55,10 @@
*
* APPROACHING
*
* Manual
* MANUAL
*
*
*
* REASON_FOR_NO
*/
package org.springblade.desk.quality;

@ -0,0 +1,24 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.pojo.dto.gen;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.desk.quality.pojo.entity.CycleTestStandard;
import java.io.Serial;
/**
* [周期试验标准] 数据传输对象实体类
*
* @author Tom Shuo
* @since 2025-11-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class CycleTestStandardGenDTO extends CycleTestStandard {
@Serial
private static final long serialVersionUID = 1L;
}

@ -53,9 +53,9 @@ public class CycleTestItem extends BaseEntity {
*/
public static final String COL_REMARK = "REMARK";
/**
* 试验标准
* [周期试验标准]id
*/
public static final String COL_STANDARD = "STANDARD";
public static final String COL_CYCLE_TEST_STANDARD_ID = "CYCLE_TEST_STANDARD_ID";
/**
* 编码
@ -92,14 +92,9 @@ public class CycleTestItem extends BaseEntity {
@Schema(description = "备注")
private String remark;
/**
* 试验标准
* [周期试验标准]id
*/
@Schema(description = "试验标准")
@ExcelProperty(value = "试验标准", index = 2)
private String standard;
/**
* 试验文件
*/
@Schema(description = "试验文件")
private Long testAttachId;
@Schema(description = "[周期试验标准]id")
@ExcelProperty(value = "[周期试验标准]id", index = 2)
private Long cycleTestStandardId;
}

@ -0,0 +1,75 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.io.Serial;
/**
* [周期试验标准] 实体类
*
* @author Tom Shuo
* @since 2025-11-28
*/
@Data
@TableName("QA_CYCLE_TEST_STANDARD")
@Schema(description = "CycleTestStandard Entity对象")
@EqualsAndHashCode(callSuper = true)
public class CycleTestStandard extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 编码
*/
public static final String COL_CODE = "CODE";
/**
* 名称
*/
public static final String COL_NAME = "NAME";
/**
* 排序
*/
public static final String COL_SORT = "SORT";
/**
* 备注
*/
public static final String COL_REMARK = "REMARK";
/**
* [周期试验标准][附件]id
*/
public static final String COL_STANDARD_ATTACH_ID = "STANDARD_ATTACH_ID";
/**
* 编码
*/
@Schema(description = "编码")
private String code;
/**
* 名称
*/
@Schema(description = "名称")
private String name;
/**
* 排序
*/
@Schema(description = "排序")
private Long sort;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
/**
* [周期试验标准][附件]id
*/
@Schema(description = "[周期试验标准][附件]id")
private Long standardAttachId;
}

@ -130,6 +130,8 @@ public class CycleTestTask extends BaseEntity {
public static final String COL_FINISH_DATE = "FINISH_DATE";
public static final String COL_REASON_FOR_NO = "REASON_FOR_NO";
/**
* [周期试验任务]编码
*/
@ -231,9 +233,9 @@ public class CycleTestTask extends BaseEntity {
@Schema(description = "填报附件")
private Long testAttachId;
/**
* 是否进行试验
* 是否进行试验-[1]:试验;[2]:不试验;
*/
@Schema(description = "是否进行试验")
@Schema(description = "是否进行试验-[1]:试验;[2]:不试验;")
private Integer isDone;
/**
* 试验时间
@ -262,4 +264,9 @@ public class CycleTestTask extends BaseEntity {
*/
@Schema(description = "完成时间")
public LocalDateTime finishDate;
/**
* 不试验原因
*/
@Schema(description = "不试验原因")
public String reasonForNo;
}

@ -25,404 +25,404 @@ import java.time.LocalDateTime;
@EqualsAndHashCode(callSuper = true)
public class LiquidTankTask extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
@Serial
private static final long serialVersionUID = 1L;
/**
* [槽液检测任务]编码
*/
/**
* [槽液检测任务]编码
*/
public static final String COL_CODE = "CODE";
/**
* 类型
*/
/**
* 类型
*/
public static final String COL_LIQUID_TANK_TASK_TYPE = "LIQUID_TANK_TASK_TYPE";
/**
* 名称
*/
/**
* 名称
*/
public static final String COL_NAME = "NAME";
/**
* [槽液]id
*/
/**
* [槽液]id
*/
public static final String COL_LIQUID_TANK_ID = "LIQUID_TANK_ID";
/**
* [作业中心]id
*/
/**
* [作业中心]id
*/
public static final String COL_WORK_CENTER_ID = "WORK_CENTER_ID";
/**
* 药品[物料]id
*/
/**
* 药品[物料]id
*/
public static final String COL_DRUG_MATERIAL_ID = "DRUG_MATERIAL_ID";
/**
* [槽液]编号
*/
/**
* [槽液]编号
*/
public static final String COL_LIQUID_TANK_CODE = "LIQUID_TANK_CODE";
/**
* 待测成分
*/
/**
* 待测成分
*/
public static final String COL_TEST_ELEMENT = "TEST_ELEMENT";
/**
* 药品名称
*/
/**
* 药品名称
*/
public static final String COL_DRUG_NAME = "DRUG_NAME";
/**
* 药品[物料]编码
*/
/**
* 药品[物料]编码
*/
public static final String COL_DRUG_MATERIAL_CODE = "DRUG_MATERIAL_CODE";
/**
* 药品物料名称
*/
/**
* 药品物料名称
*/
public static final String COL_DRUG_MATERIAL_NAME = "DRUG_MATERIAL_NAME";
/**
* 工艺含量
*/
/**
* 工艺含量
*/
public static final String COL_PROCESS_CONTENT = "PROCESS_CONTENT";
/**
* 目标值
*/
/**
* 目标值
*/
public static final String COL_TARGET_VALUE = "TARGET_VALUE";
/**
* 目标上下限
*/
/**
* 目标上下限
*/
public static final String COL_BOUND = "BOUND";
/**
* 排序
*/
/**
* 排序
*/
public static final String COL_SORT = "SORT";
/**
* 备注
*/
/**
* 备注
*/
public static final String COL_REMARK = "REMARK";
/**
* 添加点
*/
/**
* 添加点
*/
public static final String COL_FILLING_LOCATION = "FILLING_LOCATION";
/**
* 电导率测量值
*/
/**
* 电导率测量值
*/
public static final String COL_CONDUCTIVITY_TEST_VALUE = "CONDUCTIVITY_TEST_VALUE";
/**
* 体积
*/
/**
* 体积
*/
public static final String COL_VOLUME = "VOLUME";
/**
* 单位
*/
/**
* 单位
*/
public static final String COL_UNIT = "UNIT";
/**
* [计量单位]id
*/
/**
* [计量单位]id
*/
public static final String COL_UNIT_ID = "UNIT_ID";
/**
* 加药量单位
*/
/**
* 加药量单位
*/
public static final String COL_ADD_UNIT = "ADD_UNIT";
/**
* 加药量[计量单位]id
*/
/**
* 加药量[计量单位]id
*/
public static final String COL_ADD_UNIT_ID = "ADD_UNIT_ID";
/**
* 分析周期
*/
/**
* 分析周期
*/
public static final String COL_ANALYSIS_CYCLE = "ANALYSIS_CYCLE";
/**
* 有效期
*/
/**
* 有效期
*/
public static final String COL_VALID_DATE = "VALID_DATE";
/**
* 上次化验日期
*/
/**
* 上次化验日期
*/
public static final String COL_LAST_TEST = "LAST_TEST";
/**
* 槽液到期日期
*/
/**
* 槽液到期日期
*/
public static final String COL_EXPIRY_DATE = "EXPIRY_DATE";
/**
* 化验人[用户]id
*/
/**
* 化验人[用户]id
*/
public static final String COL_TEST_USER_ID = "TEST_USER_ID";
/**
* 工艺主管[用户]id
*/
/**
* 工艺主管[用户]id
*/
public static final String COL_PROCESS_USER_ID = "PROCESS_USER_ID";
/**
* 测量值
*/
/**
* 测量值
*/
public static final String COL_TEST_VALUE = "TEST_VALUE";
/**
* 需添加量
*/
/**
* 需添加量
*/
public static final String COL_NEED_ADD_VALUE = "NEED_ADD_VALUE";
/**
* 实际添加量
*/
/**
* 实际添加量
*/
public static final String COL_ACTUAL_ADD_VALUE = "ACTUAL_ADD_VALUE";
/**
* 加药后含量
*/
/**
* 加药后含量
*/
public static final String COL_AFTER_ADD_VALUE = "AFTER_ADD_VALUE";
/**
* [班组]id
*/
/**
* [班组]id
*/
public static final String COL_TEAM_ID = "TEAM_ID";
/**
* 参数录入时间
*/
/**
* 参数录入时间
*/
public static final String COL_ENTRY_DATE = "ENTRY_DATE";
/**
* 确认时间
*/
/**
* 确认时间
*/
public static final String COL_CONFIRM_DATE = "CONFIRM_DATE";
/**
* 送出[用户]id
*/
/**
* 送出[用户]id
*/
public static final String COL_SEND_USER_ID = "SEND_USER_ID";
/**
* 送出时间
*/
/**
* 送出时间
*/
public static final String COL_SEND_DATE = "SEND_DATE";
/**
* 接收[用户]id
*/
/**
* 接收[用户]id
*/
public static final String COL_RECEIVE_USER_ID = "RECEIVE_USER_ID";
/**
* 接收时间
*/
/**
* 接收时间
*/
public static final String COL_RECEIVE_DATE = "RECEIVE_DATE";
/**
* 处理[用户]id
*/
/**
* 处理[用户]id
*/
public static final String COL_HANDLE_USER_ID = "HANDLE_USER_ID";
/**
* 处理时间
*/
/**
* 处理时间
*/
public static final String COL_HANDLE_DATE = "HANDLE_DATE";
/**
* 来源类型:[1]:手动;[2]:周期自动生成;[3]:计算自动生成;
*/
/**
* 来源类型-[1]:手动;[2]:周期自动生成;[3]:计算自动生成;
*/
public static final String COL_FROM_TYPE = "FROM_TYPE";
/**
* 结束原因
*/
/**
* 结束原因
*/
public static final String COL_FINISH_REASON = "FINISH_REASON";
/**
* [槽液检测任务]编码
*/
@Schema(description = "[槽液检测任务]编码")
private String code;
/**
* 类型
*/
@Schema(description = "类型")
private Long liquidTankTaskType;
/**
* 名称
*/
@Schema(description = "名称")
private String name;
/**
* [槽液]id
*/
@Schema(description = "[槽液]id")
private Long liquidTankId;
/**
* [作业中心]id
*/
@Schema(description = "[作业中心]id")
private Long workCenterId;
/**
* 药品[物料]id
*/
@Schema(description = "药品[物料]id")
private Long drugMaterialId;
/**
* [槽液]编号
*/
@Schema(description = "[槽液]编号")
private String liquidTankCode;
/**
* 待测成分
*/
@Schema(description = "待测成分")
private String testElement;
/**
* 药品名称
*/
@Schema(description = "药品名称")
private String drugName;
/**
* 药品[物料]编码
*/
@Schema(description = "药品[物料]编码")
private String drugMaterialCode;
/**
* 药品物料名称
*/
@Schema(description = "药品物料名称")
private String drugMaterialName;
/**
* 工艺含量
*/
@Schema(description = "工艺含量")
private String processContent;
/**
* 目标值
*/
@Schema(description = "目标值")
private Long targetValue;
/**
* 目标上下限
*/
@Schema(description = "目标上下限")
private String bound;
/**
* 排序
*/
@Schema(description = "排序")
private Long sort;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
/**
* 添加点
*/
@Schema(description = "添加点")
private Long fillingLocation;
/**
* 电导率测量值
*/
@Schema(description = "电导率测量值")
private Long conductivityTestValue;
/**
* 体积
*/
@Schema(description = "体积")
private Long volume;
/**
* 单位
*/
@Schema(description = "单位")
private Long unit;
/**
* [计量单位]id
*/
@Schema(description = "[计量单位]id")
private Long unitId;
/**
* 加药量单位
*/
@Schema(description = "加药量单位")
private String addUnit;
/**
* 加药量[计量单位]id
*/
@Schema(description = "加药量[计量单位]id")
private Long addUnitId;
/**
* 分析周期
*/
@Schema(description = "分析周期")
private Integer analysisCycle;
/**
* 有效期
*/
@Schema(description = "有效期")
private LocalDateTime validDate;
/**
* 上次化验日期
*/
@Schema(description = "上次化验日期")
private LocalDateTime lastTest;
/**
* 槽液到期日期
*/
@Schema(description = "槽液到期日期")
private LocalDateTime expiryDate;
/**
* 化验人[用户]id
*/
@Schema(description = "化验人[用户]id")
private Long testUserId;
/**
* 工艺主管[用户]id
*/
@Schema(description = "工艺主管[用户]id")
private Long processUserId;
/**
* 测量值
*/
@Schema(description = "测量值")
private Long testValue;
/**
* 需添加量
*/
@Schema(description = "需添加量")
private Long needAddValue;
/**
* 实际添加量
*/
@Schema(description = "实际添加量")
private Long actualAddValue;
/**
* 加药后含量
*/
@Schema(description = "加药后含量")
private Long afterAddValue;
/**
* [班组]id
*/
@Schema(description = "[班组]id")
private Long teamId;
/**
* 参数录入时间
*/
@Schema(description = "参数录入时间")
private LocalDateTime entryDate;
/**
* 确认时间
*/
@Schema(description = "确认时间")
private LocalDateTime confirmDate;
/**
* 送出[用户]id
*/
@Schema(description = "送出[用户]id")
private Long sendUserId;
/**
* 送出时间
*/
@Schema(description = "送出时间")
private LocalDateTime sendDate;
/**
* 接收[用户]id
*/
@Schema(description = "接收[用户]id")
private Long receiveUserId;
/**
* 接收时间
*/
@Schema(description = "接收时间")
private LocalDateTime receiveDate;
/**
* 处理[用户]id
*/
@Schema(description = "处理[用户]id")
private Long handleUserId;
/**
* 处理时间
*/
@Schema(description = "处理时间")
private LocalDateTime handleDate;
/**
* 来源类型:[1]:手动;[2]:周期自动生成;[3]:计算自动生成;
*/
@Schema(description = "来源类型:[1]:手动;[2]:周期自动生成;[3]:计算自动生成;")
private Integer fromType;
/**
* 结束原因
*/
@Schema(description = "结束原因")
private String finishReason;
/**
* [槽液检测任务]编码
*/
@Schema(description = "[槽液检测任务]编码")
private String code;
/**
* 类型
*/
@Schema(description = "类型")
private Long liquidTankTaskType;
/**
* 名称
*/
@Schema(description = "名称")
private String name;
/**
* [槽液]id
*/
@Schema(description = "[槽液]id")
private Long liquidTankId;
/**
* [作业中心]id
*/
@Schema(description = "[作业中心]id")
private Long workCenterId;
/**
* 药品[物料]id
*/
@Schema(description = "药品[物料]id")
private Long drugMaterialId;
/**
* [槽液]编号
*/
@Schema(description = "[槽液]编号")
private String liquidTankCode;
/**
* 待测成分
*/
@Schema(description = "待测成分")
private String testElement;
/**
* 药品名称
*/
@Schema(description = "药品名称")
private String drugName;
/**
* 药品[物料]编码
*/
@Schema(description = "药品[物料]编码")
private String drugMaterialCode;
/**
* 药品物料名称
*/
@Schema(description = "药品物料名称")
private String drugMaterialName;
/**
* 工艺含量
*/
@Schema(description = "工艺含量")
private String processContent;
/**
* 目标值
*/
@Schema(description = "目标值")
private Long targetValue;
/**
* 目标上下限
*/
@Schema(description = "目标上下限")
private String bound;
/**
* 排序
*/
@Schema(description = "排序")
private Long sort;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
/**
* 添加点
*/
@Schema(description = "添加点")
private Long fillingLocation;
/**
* 电导率测量值
*/
@Schema(description = "电导率测量值")
private Long conductivityTestValue;
/**
* 体积
*/
@Schema(description = "体积")
private Long volume;
/**
* 单位
*/
@Schema(description = "单位")
private Long unit;
/**
* [计量单位]id
*/
@Schema(description = "[计量单位]id")
private Long unitId;
/**
* 加药量单位
*/
@Schema(description = "加药量单位")
private String addUnit;
/**
* 加药量[计量单位]id
*/
@Schema(description = "加药量[计量单位]id")
private Long addUnitId;
/**
* 分析周期
*/
@Schema(description = "分析周期")
private Integer analysisCycle;
/**
* 有效期
*/
@Schema(description = "有效期")
private LocalDateTime validDate;
/**
* 上次化验日期
*/
@Schema(description = "上次化验日期")
private LocalDateTime lastTest;
/**
* 槽液到期日期
*/
@Schema(description = "槽液到期日期")
private LocalDateTime expiryDate;
/**
* 化验人[用户]id
*/
@Schema(description = "化验人[用户]id")
private Long testUserId;
/**
* 工艺主管[用户]id
*/
@Schema(description = "工艺主管[用户]id")
private Long processUserId;
/**
* 测量值
*/
@Schema(description = "测量值")
private Long testValue;
/**
* 需添加量
*/
@Schema(description = "需添加量")
private Long needAddValue;
/**
* 实际添加量
*/
@Schema(description = "实际添加量")
private Long actualAddValue;
/**
* 加药后含量
*/
@Schema(description = "加药后含量")
private Long afterAddValue;
/**
* [班组]id
*/
@Schema(description = "[班组]id")
private Long teamId;
/**
* 参数录入时间
*/
@Schema(description = "参数录入时间")
private LocalDateTime entryDate;
/**
* 确认时间
*/
@Schema(description = "确认时间")
private LocalDateTime confirmDate;
/**
* 送出[用户]id
*/
@Schema(description = "送出[用户]id")
private Long sendUserId;
/**
* 送出时间
*/
@Schema(description = "送出时间")
private LocalDateTime sendDate;
/**
* 接收[用户]id
*/
@Schema(description = "接收[用户]id")
private Long receiveUserId;
/**
* 接收时间
*/
@Schema(description = "接收时间")
private LocalDateTime receiveDate;
/**
* 处理[用户]id
*/
@Schema(description = "处理[用户]id")
private Long handleUserId;
/**
* 处理时间
*/
@Schema(description = "处理时间")
private LocalDateTime handleDate;
/**
* 来源类型-[1]:手动;[2]:周期自动生成;[3]:计算自动生成;
*/
@Schema(description = "来源类型-[1]:手动;[2]:周期自动生成;[3]:计算自动生成;")
private Integer fromType;
/**
* 结束原因
*/
@Schema(description = "结束原因")
private String finishReason;
}

@ -0,0 +1,22 @@
package org.springblade.desk.quality.pojo.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.desk.quality.pojo.entity.CycleTestItem;
@Data
@EqualsAndHashCode(callSuper = true)
public class CycleTestItemSubmit extends CycleTestItem {
/**
* [周期试验标准]名称
*/
@Schema(description = "[周期试验标准]名称")
private String cycleTestStandardName;
/**
* [周期试验标准][附件]id
*/
@Schema(description = "[周期试验标准][附件]id")
private Long standardAttachId;
}

@ -1,19 +0,0 @@
package org.springblade.desk.quality.pojo.vo;
import lombok.Data;
import org.springblade.desk.quality.pojo.entity.CycleTestItem;
import org.springframework.beans.BeanUtils;
@Data
public class CycleTestItemStandardVO {
private Long id;
private String standard;
public static CycleTestItemStandardVO copy(CycleTestItem from) {
CycleTestItemStandardVO to = new CycleTestItemStandardVO();
BeanUtils.copyProperties(from, to);
return to;
}
}

@ -39,15 +39,20 @@ public class CycleTestGenVO extends CycleTest {
@Schema(description = "[周期试验项目]试验条件")
private String cycleTestItemCondition;
/**
* [周期试验项目]试验标准
* [周期试验标准]id
*/
@Schema(description = "[周期试验项目]试验标准")
private String cycleTestItemStandard;
@Schema(description = "[周期试验标准]id")
private Long cycleTestStandardId;
/**
* [周期试验项目]试验文件
* [周期试验标准]名称
*/
@Schema(description = "[周期试验项目]试验文件")
private String cycleTestItemTestAttach;
@Schema(description = "[周期试验标准]名称")
private String cycleTestStandardName;
/**
* [周期试验标准][附件]id
*/
@Schema(description = "[周期试验标准][附件]id")
private Long cycleTestStandardAttachId;
/**
* 工艺员[用户]姓名
*/

@ -3,8 +3,10 @@
*/
package org.springblade.desk.quality.pojo.vo.gen;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.oss.model.BladeFile;
import org.springblade.desk.quality.pojo.entity.CycleTestItem;
import java.io.Serial;
@ -19,6 +21,27 @@ import java.io.Serial;
@EqualsAndHashCode(callSuper = true)
public class CycleTestItemGenVO extends CycleTestItem {
@Serial
private static final long serialVersionUID = 1L;
@Serial
private static final long serialVersionUID = 1L;
/**
* [周期试验标准]名称
*/
@Schema(description = "[周期试验标准]名称")
private String cycleTestStandardName;
/**
* [周期试验标准][附件]id
*/
@Schema(description = "[周期试验标准][附件]id")
private Long standardAttachId;
/**
* [附件]附件地址
*/
@Schema(description = "[附件]附件地址")
private String link;
/**
* [附件]originalName
*/
@Schema(description = "[附件]originalName")
private String originalName;
}

@ -0,0 +1,24 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.pojo.vo.gen;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.desk.quality.pojo.entity.CycleTestStandard;
import java.io.Serial;
/**
* [周期试验标准] 视图实体类
*
* @author Tom Shuo
* @since 2025-11-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class CycleTestStandardGenVO extends CycleTestStandard {
@Serial
private static final long serialVersionUID = 1L;
}

@ -35,10 +35,10 @@ public class CycleTestTaskGenVO extends CycleTestTask {
@Schema(description = "[周期试验项目]试验条件")
private String cycleTestItemCondition;
/**
* [周期试验项目]试验标准
* [周期试验标准]名称
*/
@Schema(description = "[周期试验项目]试验标准")
private String cycleTestItemStandard;
private String cycleTestStandardName;
/**
* 工艺员[用户]姓名
*/
@ -59,4 +59,20 @@ public class CycleTestTaskGenVO extends CycleTestTask {
*/
@Schema(description = "状态名称")
private String statusName;
/**
* 临期天数 =任务计划结束日期-当前日期
* todo:
*/
@Schema(description = "临期天数 =任务计划结束日期-当前日期")
private Integer countDayToPlanedFinish = 2;
/**
* 填报[附件]附件地址
*/
@Schema(description = "填报[附件]附件地址")
private String link;
/**
* 填报[附件]originalName
*/
@Schema(description = "填报[附件]originalName")
private String originalName;
}

@ -1,17 +1,29 @@
package org.springblade.desk.quality.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.v3.oas.annotations.Parameter;
import jakarta.annotation.Resource;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.desk.quality.constant.BaseCol;
import org.springblade.desk.quality.mapper.gen.CycleTestItemGenMapper;
import org.springblade.desk.quality.pojo.entity.CycleTestItem;
import org.springblade.desk.quality.pojo.vo.CycleTestItemStandardVO;
import org.springblade.desk.quality.pojo.entity.CycleTestStandard;
import org.springblade.desk.quality.pojo.request.CycleTestItemSubmit;
import org.springblade.desk.quality.pojo.vo.gen.CycleTestItemGenVO;
import org.springblade.desk.quality.service.gen.ICycleTestItemGenService;
import org.springblade.desk.quality.service.gen.ICycleTestStandardGenService;
import org.springblade.desk.quality.wrapper.gen.CycleTestItemGenWrapper;
import org.springblade.resource.feign.IAttachClient;
import org.springblade.resource.pojo.entity.Attach;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
@ -20,6 +32,91 @@ public class CycleTestItemService {
@Resource
private CycleTestItemGenMapper genMapper;
@Resource
private ICycleTestItemGenService genService;
@Resource
private ICycleTestStandardGenService standardGenService;
@Resource
private CycleTestStandardService standardService;
@Resource
private IAttachClient attachClient;
/**
* list
*
* @param cycleTestItem
* @param query
* @return
*/
public R<IPage<CycleTestItemGenVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> cycleTestItem,
Query query) {
IPage<CycleTestItem> pages = genService.page(
Condition.getPage(query),
Condition.getQueryWrapper(cycleTestItem, CycleTestItem.class)
.orderByAsc(BaseCol.ID)
);
IPage<CycleTestItemGenVO> pagesVO = CycleTestItemGenWrapper.build().pageVO(pages);
pagesVO.getRecords()
.stream()
.peek(this::setVoValue)
.collect(Collectors.toList());
return R.data(pagesVO);
}
/**
* search
*
* @param cycleTestItem
* @param query
* @return
*/
public R<IPage<CycleTestItemGenVO>> page(CycleTestItemGenVO cycleTestItem, Query query) {
IPage<CycleTestItem> pages = genService.selectCycleTestItemPage(
Condition.getPage(query),
cycleTestItem
);
IPage<CycleTestItemGenVO> pagesVO = CycleTestItemGenWrapper.build().pageVO(pages);
pagesVO.getRecords()
.stream()
.peek(this::setVoValue)
.collect(Collectors.toList());
return R.data(pagesVO);
}
public R save(CycleTestItemSubmit submit) {
submit.setId(null);
if (submit.getCycleTestStandardId() == null || submit.getCycleTestStandardId() == 0L) {
if (standardService.existByName(submit.getCycleTestStandardName())) {
return R.fail("周期试验标准名称重复!");
}
CycleTestStandard standard = new CycleTestStandard();
standard.setStandardAttachId(submit.getStandardAttachId());
standard.setName(submit.getCycleTestStandardName());
standard.setStandardAttachId(submit.getStandardAttachId());
standardGenService.save(standard);
submit.setCycleTestStandardId(standard.getId());
} else {
submit.setCycleTestStandardId(submit.getCycleTestStandardId());
}
return R.status(genService.save(submit));
}
public R update(CycleTestItemSubmit submit) {
if (submit.getCycleTestStandardId() == null || submit.getCycleTestStandardId() == 0L) {
if (standardService.existByName(submit.getCycleTestStandardName())) {
return R.fail("周期试验标准名称重复!");
}
CycleTestStandard standard = new CycleTestStandard();
standard.setStandardAttachId(submit.getStandardAttachId());
standard.setName(submit.getCycleTestStandardName());
standard.setStandardAttachId(submit.getStandardAttachId());
standardGenService.save(standard);
submit.setCycleTestStandardId(standard.getId());
} else {
submit.setCycleTestStandardId(submit.getCycleTestStandardId());
}
return R.status(genService.updateById(submit));
}
/**
* 所有供下拉选择
@ -33,17 +130,19 @@ public class CycleTestItemService {
));
}
public R<List<CycleTestItemStandardVO>> listForSelectStandard() {
List<CycleTestItem> listFrom = genMapper.selectList(
new QueryWrapper<CycleTestItem>()
.orderByAsc(BaseCol.ID)
);
return R.data(
listFrom.stream()
// getStandard check isNotBlank.
.filter(item -> StringUtils.isNotBlank(item.getStandard()))
.map(CycleTestItemStandardVO::copy)
.collect(Collectors.toList())
);
public void setVoValue(CycleTestItemGenVO vo) {
CycleTestStandard standard = standardGenService.getById(vo.getCycleTestStandardId());
if (standard != null) {
vo.setCycleTestStandardName(standard.getName());
}
Attach attach = null;
if (standard != null) {
Attach f = new Attach();
f.setId(standard.getStandardAttachId());
attach = attachClient.detail(f).getData();
vo.setStandardAttachId(attach.getId());
vo.setLink(attach.getLink());
vo.setOriginalName(attach.getOriginalName());
}
}
}

@ -11,13 +11,18 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.dashboard.service.IBsPlatingService;
import org.springblade.desk.quality.constant.BaseCol;
import org.springblade.desk.quality.constant.CycleTestTaskConst;
import org.springblade.desk.quality.mapper.gen.CycleTestGenMapper;
import org.springblade.desk.quality.pojo.entity.CycleTest;
import org.springblade.desk.quality.pojo.entity.CycleTestItem;
import org.springblade.desk.quality.pojo.entity.CycleTestStandard;
import org.springblade.desk.quality.pojo.vo.gen.CycleTestGenVO;
import org.springblade.desk.quality.service.gen.ICycleTestGenService;
import org.springblade.desk.quality.service.gen.ICycleTestItemGenService;
import org.springblade.desk.quality.service.gen.ICycleTestStandardGenService;
import org.springblade.desk.quality.wrapper.gen.CycleTestGenWrapper;
import org.springblade.resource.feign.IAttachClient;
import org.springblade.resource.pojo.entity.Attach;
import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.UserInfo;
@ -41,11 +46,15 @@ public class CycleTestService {
@Resource
private ICycleTestItemGenService itemGenService;
@Resource
private ICycleTestStandardGenService standardGenService;
@Resource
private IBsPlatingService bsPlatingService;
@Resource
private IUserClient userClient;
@Resource
private IDictClient dictClient;
@Resource
private IAttachClient attachClient;
public R updateProcessUserBat(String ids, Long processUserId) {
List<Long> list = Func.toLongList(ids);
@ -107,17 +116,26 @@ public class CycleTestService {
public void setVoValue(CycleTestGenVO vo) {
{
R<UserInfo> ui = userClient.userInfo(vo.getUpdateUser());
if (!Objects.isNull(ui)) {
if (!Objects.isNull(ui.getData().getUser())) {
vo.setUpdateUserName(ui.getData().getUser().getName());
}
}
CycleTestItem item = itemGenService.getById(vo.getCycleTestItemId());
CycleTestStandard standard = standardGenService.getById(item.getCycleTestStandardId());
Long standardAttachId = standard.getStandardAttachId();
Attach attach = null;
{
Attach attachFind = new Attach();
attachFind.setId(standardAttachId);
attach = attachClient.detail(attachFind).getData();
}
if (!Objects.isNull(item)) {
vo.setCycleTestItemName(item.getName());
vo.setCycleTestItemCondition(item.getCondition());
vo.setCycleTestItemStandard(item.getStandard());
vo.setCycleTestStandardId(item.getCycleTestStandardId());
vo.setCycleTestStandardName(standard.getName());
}
vo.setCycleTestItemTestAttach(item.getTestAttachId() + "");
vo.setCycleTestStandardAttachId(standardAttachId);
{
R<UserInfo> ui = userClient.userInfo(vo.getProcessUserId());
if (!Objects.isNull(ui)) {
@ -127,6 +145,6 @@ public class CycleTestService {
if (vo.getPlateId() != null && vo.getPlateId() != 0L) {
vo.setPlateName(bsPlatingService.getById(vo.getPlateId()).getPlate());
}
vo.setTestTypeName(dictClient.getValue("testPiece", "" + vo.getTestType()).getData());
vo.setTestTypeName(dictClient.getValue(CycleTestTaskConst.DICT_TEST_PIECE, "" + vo.getTestType()).getData());
}
}

@ -0,0 +1,58 @@
package org.springblade.desk.quality.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
import org.springblade.desk.quality.constant.BaseCol;
import org.springblade.desk.quality.mapper.gen.CycleTestStandardGenMapper;
import org.springblade.desk.quality.pojo.entity.CycleTestStandard;
import org.springblade.desk.quality.service.gen.ICycleTestStandardGenService;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@Service
@Data
@Slf4j
public class CycleTestStandardService {
@Resource
private ICycleTestStandardGenService genService;
@Resource
private CycleTestStandardGenMapper genMapper;
public Boolean existByName(String name) {
QueryWrapper<CycleTestStandard> qw = new QueryWrapper<CycleTestStandard>()
.eq(CycleTestStandard.COL_NAME, name);
CycleTestStandard find = genService.getOne(qw);
if (find == null) {
return false;
} else {
return true;
}
}
public R submit(@Valid @RequestBody CycleTestStandard cycleTestStandard) {
// 根据name判断是新增还是修改。
QueryWrapper<CycleTestStandard> qw = new QueryWrapper<CycleTestStandard>()
.eq(CycleTestStandard.COL_NAME, cycleTestStandard.getName());
CycleTestStandard find = genService.getOne(qw);
if (find == null) {
return R.status(genService.save(cycleTestStandard));
} else {
return R.status(genService.updateById(cycleTestStandard));
}
}
public R<List<CycleTestStandard>> listForSelect() {
List<CycleTestStandard> list = genMapper.selectList(
new QueryWrapper<CycleTestStandard>()
.orderByAsc(BaseCol.ID)
);
return R.data(list);
}
}

@ -1,5 +1,6 @@
package org.springblade.desk.quality.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.v3.oas.annotations.Parameter;
import jakarta.annotation.Resource;
@ -15,11 +16,15 @@ import org.springblade.desk.quality.mapper.gen.CycleTestGenMapper;
import org.springblade.desk.quality.mapper.gen.CycleTestTaskGenMapper;
import org.springblade.desk.quality.pojo.entity.CycleTest;
import org.springblade.desk.quality.pojo.entity.CycleTestItem;
import org.springblade.desk.quality.pojo.entity.CycleTestStandard;
import org.springblade.desk.quality.pojo.entity.CycleTestTask;
import org.springblade.desk.quality.pojo.vo.gen.CycleTestTaskGenVO;
import org.springblade.desk.quality.service.gen.ICycleTestItemGenService;
import org.springblade.desk.quality.service.gen.ICycleTestStandardGenService;
import org.springblade.desk.quality.service.gen.ICycleTestTaskGenService;
import org.springblade.desk.quality.wrapper.gen.CycleTestTaskGenWrapper;
import org.springblade.resource.feign.IAttachClient;
import org.springblade.resource.pojo.entity.Attach;
import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.UserInfo;
@ -30,6 +35,8 @@ import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@ -52,6 +59,8 @@ public class CycleTestTaskService {
@Resource
private CycleTestGenMapper cycleTestGenMapper;
@Resource
private ICycleTestStandardGenService standardGenService;
@Resource
private ICycleTestItemGenService itemGenService;
@Resource
private ICycleTestTaskGenService genService;
@ -59,6 +68,8 @@ public class CycleTestTaskService {
private IUserClient userClient;
@Resource
private IDictClient dictClient;
@Resource
private IAttachClient attachClient;
/**
* list
@ -140,6 +151,7 @@ public class CycleTestTaskService {
CycleTestTask task = new CycleTestTask();
// set value.
{
task.setCode(genCode());
task.setCycleTestTaskType(CycleTestTaskConst.TYPE_ONE_TIME);
task.setCycleTestItemId(ct.getCycleTestItemId());
task.setStatus(CycleTestTaskConst.STATE_PENDING_ISSUE);
@ -220,6 +232,7 @@ public class CycleTestTaskService {
CycleTestTask task = genMapper.selectById(id);
task.setStatus(CycleTestTaskConst.STATE_PENDING_TEST);
task.setAcceptDate(LocalDateTime.now());
genMapper.updateById(task);
return R.success("接受任务成功");
}
@ -227,24 +240,30 @@ public class CycleTestTaskService {
* 填报
*
* @param id
* @param isDone
* @param testDate
* @param testAttachId
* @param reasonForNo
* @return
*/
public R<Boolean> fill(Long id, LocalDate testDate, Long testAttachId) {
public R<Boolean> fill(Long id, Integer isDone, LocalDate testDate, Long testAttachId, String reasonForNo) {
CycleTestTask task = genMapper.selectById(id);
task.setIsDone(isDone);
task.setTestDate(testDate);
task.setTestAttachId(testAttachId);
task.setStatus(CycleTestTaskConst.STATE_FINISH_OK);
task.setFinishDate(LocalDateTime.now());
task.setReasonForNo(reasonForNo);
genMapper.updateById(task);
return R.success();
}
private void setVoValue(CycleTestTaskGenVO vo) {
public void setVoValue(CycleTestTaskGenVO vo) {
CycleTestItem item = itemGenService.getById(vo.getCycleTestItemId());
CycleTestStandard standard = standardGenService.getById(item.getCycleTestStandardId());
vo.setCycleTestItemName(item.getName());
vo.setCycleTestItemCondition(item.getCondition());
vo.setCycleTestItemStandard(item.getStandard());
vo.setCycleTestStandardName(standard.getName());
{
R<UserInfo> ui = userClient.userInfo(vo.getProcessUserId());
if (!Objects.isNull(ui)) {
@ -256,7 +275,63 @@ public class CycleTestTaskService {
LocalDateTime ldt = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
vo.setGenDatetime(ldt);
}
vo.setTestTypeName(dictClient.getValue("testPiece", "" + vo.getTestType()).getData());
vo.setStatusName(dictClient.getValue("CycleTestTask-Status", "" + vo.getStatus()).getData());
vo.setTestTypeName(dictClient.getValue(CycleTestTaskConst.DICT_TEST_PIECE, "" + vo.getTestType()).getData());
vo.setStatusName(dictClient.getValue(CycleTestTaskConst.DICT_STATUS, "" + vo.getStatus()).getData());
if (vo.getTestAttachId() != null && vo.getTestAttachId() != 0L) {
Attach f = new Attach();
f.setId(vo.getTestAttachId());
Attach attach = attachClient.detail(f).getData();
if (!Objects.isNull(attach)) {
vo.setLink(attach.getLink());
vo.setOriginalName(attach.getOriginalName());
}
}
}
/**
* 计算任务 周期性任务 下发日期/任务生成日期
*
* @return
*/
public LocalDate cal() {
return null;
}
public String genCode() {
StringBuilder sb = new StringBuilder();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
sb.append(LocalDate.now().format(formatter));
sb.append(String.format("%04d", countTodayGenTask() + 1));
log.info("{}", countTodayGenTask());
return sb.toString();
}
/**
* 统计当天已经生成的任务总数
*
* @return
*/
public Long countTodayGenTask() {
Instant leftInstant = LocalDate.now()
.atStartOfDay()
.atZone(ZoneId.systemDefault())
.toInstant();
Instant rightInstant = LocalDate.now()
.atTime(23, 59, 59, 999)
.atZone(ZoneId.systemDefault())
.toInstant();
return genMapper.selectCount(
new LambdaQueryWrapper<CycleTestTask>()
.between(CycleTestTask::getCreateTime,
Date.from(leftInstant), Date.from(rightInstant))
);
}
// @Resource
// private MinioTemplate minioTemplate;
//
// public R testMinio() {
// OssFile ossFile = minioTemplate.statFile("00000000.JPG");
// log.info("{}", ossFile);
// return R.success("");
// }
}

@ -7,6 +7,8 @@ import org.springblade.core.tool.api.R;
import org.springblade.desk.quality.constant.JobInfoConst;
import org.springblade.job.feign.IJobExtClient;
import org.springblade.job.pojo.entity.JobInfo;
import org.springblade.resource.feign.IAttachClient;
import org.springblade.resource.pojo.entity.Attach;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User;
import org.springframework.stereotype.Service;
@ -21,6 +23,8 @@ public class TestService {
@Resource
private IJobExtClient jobExtClient;
@Resource
private IAttachClient attachClient;
public R<User> getOneUser(Long userId) {
return userClient.userInfoById(userId);
@ -38,8 +42,15 @@ public class TestService {
// j.setDispatchStrategy(JobInfoConst.DISPATCH_STRATEGY_1);
// j.setProcessorInfo("org.springblade.job.processor.ProcessorDemo");
// jobExtClient.submitAndSync(j);
// 最后同步。
jobExtClient.sync();
// jobExtClient.sync();
Attach f = new Attach();
f.setId(1994233923445481474L);
R<Attach> r = attachClient.detail(f);
log.info("test1 = {}", r);
return R.data(Boolean.TRUE);
}
}

@ -19,21 +19,22 @@ import java.util.List;
* @since 2025-11-17
*/
public interface ICycleTestItemGenService extends BaseService<CycleTestItem> {
/**
* 自定义分页
*
* @param page 分页参数
* @param cycleTestItem 查询参数
* @return IPage<CycleTestItemVO>
*/
IPage<CycleTestItemGenVO> selectCycleTestItemPage(IPage<CycleTestItemGenVO> page, CycleTestItemGenVO cycleTestItem);
/**
* 自定义分页
*
* @param page 分页参数
* @param cycleTestItem 查询参数
* @return IPage<CycleTestItemVO>
*/
IPage<CycleTestItem> selectCycleTestItemPage(IPage<CycleTestItem> page,
CycleTestItemGenVO cycleTestItem);
/**
* 导出数据
*
* @param queryWrapper 查询条件
* @return List<CycleTestItemExcel>
*/
List<CycleTestItemGenExcel> exportCycleTestItem(Wrapper<CycleTestItem> queryWrapper);
/**
* 导出数据
*
* @param queryWrapper 查询条件
* @return List<CycleTestItemExcel>
*/
List<CycleTestItemGenExcel> exportCycleTestItem(Wrapper<CycleTestItem> queryWrapper);
}

@ -0,0 +1,39 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.service.gen;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.quality.excel.gen.CycleTestStandardGenExcel;
import org.springblade.desk.quality.pojo.entity.CycleTestStandard;
import org.springblade.desk.quality.pojo.vo.gen.CycleTestStandardGenVO;
import java.util.List;
/**
* [周期试验标准] 服务类
*
* @author Tom Shuo
* @since 2025-11-28
*/
public interface ICycleTestStandardGenService extends BaseService<CycleTestStandard> {
/**
* 自定义分页
*
* @param page 分页参数
* @param cycleTestStandard 查询参数
* @return IPage<CycleTestStandardVO>
*/
IPage<CycleTestStandard> selectCycleTestStandardPage(IPage<CycleTestStandard> page,
CycleTestStandardGenVO cycleTestStandard);
/**
* 导出数据
*
* @param queryWrapper 查询条件
* @return List<CycleTestStandardExcel>
*/
List<CycleTestStandardGenExcel> exportCycleTestStandard(Wrapper<CycleTestStandard> queryWrapper);
}

@ -26,7 +26,7 @@ public class CycleTestItemGenServiceImpl extends BaseServiceImpl<CycleTestItemGe
implements ICycleTestItemGenService {
@Override
public IPage<CycleTestItemGenVO> selectCycleTestItemPage(IPage<CycleTestItemGenVO> page,
public IPage<CycleTestItem> selectCycleTestItemPage(IPage<CycleTestItem> page,
CycleTestItemGenVO cycleTestItem) {
return page.setRecords(baseMapper.selectCycleTestItemPage(page, cycleTestItem));
}

@ -0,0 +1,42 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.service.impl.gen;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.quality.excel.gen.CycleTestStandardGenExcel;
import org.springblade.desk.quality.mapper.gen.CycleTestStandardGenMapper;
import org.springblade.desk.quality.pojo.entity.CycleTestStandard;
import org.springblade.desk.quality.pojo.vo.gen.CycleTestStandardGenVO;
import org.springblade.desk.quality.service.gen.ICycleTestStandardGenService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* [周期试验标准] 服务实现类
*
* @author Tom Shuo
* @since 2025-11-28
*/
@Service
public class CycleTestStandardGenServiceImpl extends BaseServiceImpl<CycleTestStandardGenMapper, CycleTestStandard>
implements ICycleTestStandardGenService {
@Override
public IPage<CycleTestStandard> selectCycleTestStandardPage(IPage<CycleTestStandard> page,
CycleTestStandardGenVO q) {
return page.setRecords(baseMapper.selectCycleTestStandardPage(page, q));
}
@Override
public List<CycleTestStandardGenExcel> exportCycleTestStandard(Wrapper<CycleTestStandard> queryWrapper) {
List<CycleTestStandardGenExcel> cycleTestStandardList = baseMapper.exportCycleTestStandard(queryWrapper);
//cycleTestStandardList.forEach(cycleTestStandard -> {
// cycleTestStandard.setTypeName(DictCache.getValue(DictEnum.YES_NO, CycleTestStandard.getType()));
//});
return cycleTestStandardList;
}
}

@ -0,0 +1,7 @@
package org.springblade.desk.quality.util;
import java.time.LocalDate;
public class CycleTestTaskUtil {
}

@ -0,0 +1,36 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.wrapper.gen;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.desk.quality.pojo.entity.CycleTestStandard;
import org.springblade.desk.quality.pojo.vo.gen.CycleTestStandardGenVO;
import java.util.Objects;
/**
* [周期试验标准] 包装类,返回视图层所需的字段
*
* @author Tom Shuo
* @since 2025-11-28
*/
public class CycleTestStandardGenWrapper extends BaseEntityWrapper<CycleTestStandard, CycleTestStandardGenVO> {
public static CycleTestStandardGenWrapper build() {
return new CycleTestStandardGenWrapper();
}
@Override
public CycleTestStandardGenVO entityVO(CycleTestStandard cycleTestStandard) {
CycleTestStandardGenVO cycleTestStandardVO = Objects.requireNonNull(BeanUtil.copyProperties(cycleTestStandard, CycleTestStandardGenVO.class));
//User createUser = UserCache.getUser(cycleTestStandard.getCreateUser());
//User updateUser = UserCache.getUser(cycleTestStandard.getUpdateUser());
//cycleTestStandardVO.setCreateUserName(createUser.getName());
//cycleTestStandardVO.setUpdateUserName(updateUser.getName());
return cycleTestStandardVO;
}
}
Loading…
Cancel
Save