周期试验修改。

develop-QA
Tom Li 6 days ago
parent 4558f3a858
commit 8def6c9adc
  1. 10
      blade-ops/blade-job/src/main/java/org/springblade/job/processor/quality/CycleTestTaskTestProcessor.java
  2. 5
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/feign/ICycleTestTaskClient.java
  3. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestItemController.java
  4. 24
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/feign/CycleTestTaskClient.java
  5. 15
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/request/CycleTestTaskFilter.java
  6. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/request/JobExt.java
  7. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestGenVO.java
  8. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestItemGenVO.java
  9. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestStandardGenVO.java
  10. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/pojo/vo/gen/CycleTestTaskGenVO.java
  11. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestItemService.java
  12. 60
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService.java
  13. 15
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestStandardService.java
  14. 71
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService.java
  15. 37
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/PowerJobUtil.java

@ -1,7 +1,9 @@
package org.springblade.job.processor.quality;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springblade.desk.quality.feign.ICycleTestTaskClient;
import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
@ -10,10 +12,14 @@ import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
@Component
@Data
@Slf4j
public class CycleTestTaskTimeoutProcessor implements BasicProcessor {
public class CycleTestTaskTestProcessor implements BasicProcessor {
@Resource
private ICycleTestTaskClient client;
@Override
public ProcessResult process(TaskContext context) throws Exception {
return null;
client.test();
return new ProcessResult(true);
}
}

@ -13,6 +13,11 @@ public interface ICycleTestTaskClient {
String TIMEOUT = API_PREFIX + "/timeout";
String TEST = API_PREFIX + "/test";
@GetMapping(TIMEOUT)
public Boolean timeout(Long id);
@GetMapping(TEST)
public void test();
}

@ -203,7 +203,7 @@ public class CycleTestItemController extends BladeController {
@GetMapping("/listForSelect")
@ApiOperationSupport(order = 11)
@Operation(summary = "list下拉选择", description = "")
public R<List<CycleTestItem>> listForSelect() {
public R<List<CycleTestItemGenVO>> listForSelect() {
return service.listForSelect();
}
}

@ -0,0 +1,24 @@
package org.springblade.desk.quality.feign;
import io.swagger.v3.oas.annotations.Hidden;
import jakarta.annotation.Resource;
import org.springblade.desk.quality.service.CycleTestTaskService;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Hidden
public class CycleTestTaskClient implements ICycleTestTaskClient {
@Resource
private CycleTestTaskService service;
@Override
public Boolean timeout(Long id) {
return null;
}
@Override
public void test() {
service.test();
}
}

@ -0,0 +1,15 @@
package org.springblade.desk.quality.pojo.request;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.desk.quality.pojo.entity.CycleTestTask;
@Data
@EqualsAndHashCode(callSuper = true)
public class CycleTestTaskFilter extends CycleTestTask {
/**
* 过滤类型-[1]:临期;[2]超期;
*/
private Integer filterType;
}

@ -1,8 +1,10 @@
package org.springblade.desk.quality.pojo.request;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode
public class JobExt {
/**

@ -72,4 +72,9 @@ public class CycleTestGenVO extends CycleTest {
* 试验件类型 名称
*/
private String testTypeName;
/**
* standard
*/
@Schema(description = "standard")
private CycleTestStandardGenVO standard;
}

@ -6,8 +6,8 @@ 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 org.springblade.desk.quality.pojo.entity.CycleTestStandard;
import java.io.Serial;

@ -3,6 +3,7 @@
*/
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.desk.quality.pojo.entity.CycleTestStandard;
@ -21,4 +22,14 @@ public class CycleTestStandardGenVO extends CycleTestStandard {
@Serial
private static final long serialVersionUID = 1L;
/**
* 标准[附件]附件地址
*/
@Schema(description = "标准[附件]附件地址")
private String link;
/**
* 标准[附件]originalName
*/
@Schema(description = "标准[附件]originalName")
private String originalName;
}

@ -6,6 +6,7 @@ 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.desk.quality.pojo.entity.CycleTestStandard;
import org.springblade.desk.quality.pojo.entity.CycleTestTask;
import java.io.Serial;
@ -60,11 +61,11 @@ public class CycleTestTaskGenVO extends CycleTestTask {
@Schema(description = "状态名称")
private String statusName;
/**
* 临期天数 =任务计划结束日期-当前日期
* 临期天数 = 任务计划结束日期 - 当前日期
* todo:
*/
@Schema(description = "临期天数 =任务计划结束日期-当前日期")
private Integer countDayToPlanedFinish = 2;
@Schema(description = "临期天数 = 任务计划结束日期 - 当前日期")
private Integer countDayToPlanedFinish = 5;
/**
* 填报[附件]附件地址
*/
@ -75,4 +76,8 @@ public class CycleTestTaskGenVO extends CycleTestTask {
*/
@Schema(description = "填报[附件]originalName")
private String originalName;
/**
* 对应[周期试验标准对象]
*/
private CycleTestStandardGenVO standard;
}

@ -123,11 +123,16 @@ public class CycleTestItemService {
*
* @return
*/
public R<List<CycleTestItem>> listForSelect() {
return R.data(genMapper.selectList(
public R<List<CycleTestItemGenVO>> listForSelect() {
List<CycleTestItem> list = genMapper.selectList(
new QueryWrapper<CycleTestItem>()
.orderByAsc(BaseCol.ID)
));
);
List<CycleTestItemGenVO> listVO = CycleTestItemGenWrapper.build().listVO(list);
listVO.stream()
.peek(this::setVoValue)
.collect(Collectors.toList());
return R.data(listVO);
}
public void setVoValue(CycleTestItemGenVO vo) {

@ -1,5 +1,6 @@
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;
@ -12,15 +13,18 @@ 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.constant.JobTypeConst;
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.pojo.vo.gen.CycleTestStandardGenVO;
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.desk.quality.wrapper.gen.CycleTestStandardGenWrapper;
import org.springblade.resource.feign.IAttachClient;
import org.springblade.resource.pojo.entity.Attach;
import org.springblade.system.feign.IDictClient;
@ -48,6 +52,11 @@ public class CycleTestService {
@Resource
private ICycleTestStandardGenService standardGenService;
@Resource
private CycleTestStandardService standardService;
/**
* 镀种
*/
@Resource
private IBsPlatingService bsPlatingService;
@Resource
private IUserClient userClient;
@ -56,6 +65,31 @@ public class CycleTestService {
@Resource
private IAttachClient attachClient;
/**
*
* @return
*/
public R autoGenTask() {
// 获取所有 有效的 周期试验
List<CycleTest> all = genMapper.selectList(new QueryWrapper<>());
all.forEach(ct -> {
// todo:有效性检查
final Integer jobType = ct.getJobType();
if (Objects.equals(jobType, JobTypeConst.WEEK)) {
} else if (Objects.equals(jobType, JobTypeConst.MONTH)) {
} else if (Objects.equals(jobType, JobTypeConst.YEAR)) {
} else if (Objects.equals(jobType, JobTypeConst.CUSTOM)) {
// todo:暂不支持
}
// default -> throw new IllegalStateException("Unexpected value: " + jobType);
});
return null;
}
public R updateProcessUserBat(String ids, Long processUserId) {
List<Long> list = Func.toLongList(ids);
for (Long id : list) {
@ -75,16 +109,11 @@ public class CycleTestService {
*/
public R<IPage<CycleTestGenVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> cycleTest,
Query query) {
IPage<CycleTest> pages = genService.page(
Condition.getPage(query),
Condition.getQueryWrapper(cycleTest, CycleTest.class)
.orderByAsc(BaseCol.ID)
IPage<CycleTest> pages = genService.page(Condition.getPage(query),
Condition.getQueryWrapper(cycleTest, CycleTest.class).orderByAsc(BaseCol.ID)
);
IPage<CycleTestGenVO> pagesVO = CycleTestGenWrapper.build().pageVO(pages);
pagesVO.getRecords()
.stream()
.peek(this::setVoValue)
.collect(Collectors.toList());
pagesVO.getRecords().stream().peek(this::setVoValue).collect(Collectors.toList());
return R.data(pagesVO);
}
@ -96,15 +125,9 @@ public class CycleTestService {
* @return
*/
public R<IPage<CycleTestGenVO>> page(CycleTestGenVO cycleTest, Query query) {
IPage<CycleTest> pages = genService.selectCycleTestPage(
Condition.getPage(query),
cycleTest
);
IPage<CycleTest> pages = genService.selectCycleTestPage(Condition.getPage(query), cycleTest);
IPage<CycleTestGenVO> pagesVO = CycleTestGenWrapper.build().pageVO(pages);
pagesVO.getRecords()
.stream()
.peek(this::setVoValue)
.collect(Collectors.toList());
pagesVO.getRecords().stream().peek(this::setVoValue).collect(Collectors.toList());
return R.data(pagesVO);
}
@ -122,6 +145,11 @@ public class CycleTestService {
}
CycleTestItem item = itemGenService.getById(vo.getCycleTestItemId());
CycleTestStandard standard = standardGenService.getById(item.getCycleTestStandardId());
if (standard != null) {
CycleTestStandardGenVO sVO = CycleTestStandardGenWrapper.build().entityVO(standard);
standardService.setVoValue(sVO);
vo.setStandard(sVO);
}
Long standardAttachId = standard.getStandardAttachId();
Attach attach = null;
{

@ -9,7 +9,10 @@ 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.pojo.vo.gen.CycleTestStandardGenVO;
import org.springblade.desk.quality.service.gen.ICycleTestStandardGenService;
import org.springblade.resource.feign.IAttachClient;
import org.springblade.resource.pojo.entity.Attach;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
@ -20,6 +23,8 @@ import java.util.List;
@Slf4j
public class CycleTestStandardService {
@Resource
private IAttachClient attachClient;
@Resource
private ICycleTestStandardGenService genService;
@Resource
@ -55,4 +60,14 @@ public class CycleTestStandardService {
);
return R.data(list);
}
public void setVoValue(CycleTestStandardGenVO vo) {
Attach f = new Attach();
f.setId(vo.getStandardAttachId());
Attach a = attachClient.detail(f).getData();
if (a != null) {
vo.setOriginalName(a.getOriginalName());
vo.setLink(a.getLink());
}
}
}

@ -12,16 +12,21 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.quality.constant.BaseCol;
import org.springblade.desk.quality.constant.CycleTestTaskConst;
import org.springblade.desk.quality.constant.JobTypeConst;
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.request.JobExt;
import org.springblade.desk.quality.pojo.vo.gen.CycleTestStandardGenVO;
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.util.PowerJobUtil;
import org.springblade.desk.quality.wrapper.gen.CycleTestStandardGenWrapper;
import org.springblade.desk.quality.wrapper.gen.CycleTestTaskGenWrapper;
import org.springblade.resource.feign.IAttachClient;
import org.springblade.resource.pojo.entity.Attach;
@ -45,9 +50,12 @@ import java.util.stream.Collectors;
/**
*
* 时间说明:
* 任务下发日期=试验周期对应日期-提前下发天数
* 任务结束日期=任务下发日期+试验周期
* 开始临期提醒日期=任务结束日期-临期提醒天数未完成的试验
* 任务下发日期 = 试验周期对应日期 - 提前下发天数
* 任务结束日期 = 任务下发日期+试验周期
* 开始临期提醒日期 = 任务结束日期-临期提醒天数未完成的试验
* 临期天数 = 任务结束日期-当前日期
* <p>
* todo:工艺员 只能看到自己的数据
*/
@Service
@Data
@ -61,6 +69,8 @@ public class CycleTestTaskService {
@Resource
private ICycleTestStandardGenService standardGenService;
@Resource
private CycleTestStandardService standardService;
@Resource
private ICycleTestItemGenService itemGenService;
@Resource
private ICycleTestTaskGenService genService;
@ -71,6 +81,12 @@ public class CycleTestTaskService {
@Resource
private IAttachClient attachClient;
public R autoCheckTimeout() {
//
return R.success("");
}
/**
* list
*
@ -80,10 +96,12 @@ public class CycleTestTaskService {
*/
public R<IPage<CycleTestTaskGenVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> cycleTestTask,
Query query) {
log.info("cycleTestTask = {}", cycleTestTask);
IPage<CycleTestTask> pages = genService.page(
Condition.getPage(query),
Condition.getQueryWrapper(cycleTestTask, CycleTestTask.class)
.orderByAsc(BaseCol.ID)
.orderByAsc(BaseCol.STATUS)
);
IPage<CycleTestTaskGenVO> pagesVO = CycleTestTaskGenWrapper.build().pageVO(pages);
pagesVO.getRecords()
@ -116,26 +134,26 @@ public class CycleTestTaskService {
/**
* 定时任务 生成任务
*
* @param cycleTestId
* @param cycleTestId 指定 周期试验
* @return
*/
public Boolean generateAuto(Long cycleTestId) {
public CycleTestTask generateAuto(Long cycleTestId) {
CycleTest ct = cycleTestGenMapper.selectById(cycleTestId);
CycleTestTask task = new CycleTestTask();
{
task.setStatus(CycleTestTaskConst.STATE_PENDING_ACCEPT);
task.setCode(genCode());
task.setCycleTestTaskType(CycleTestTaskConst.TYPE_CYCLE);
task.setName(genCode());
task.setCycleTestItemId(ct.getCycleTestItemId());
task.setStatus(CycleTestTaskConst.STATE_PENDING_ACCEPT);
task.setTestType(ct.getTestType());
task.setProcessUserId(ct.getProcessUserId());
task.setTestUserId(ct.getTestUserId());
task.setPlateId(ct.getPlateId());
}
task.setCycleTestItemId(ct.getCycleTestItemId());
task.setProcessUserId(ct.getProcessUserId());
// 插入生成任务。
genMapper.insert(task);
return true;
return task;
}
/**
@ -260,10 +278,17 @@ public class CycleTestTaskService {
public void setVoValue(CycleTestTaskGenVO vo) {
CycleTestItem item = itemGenService.getById(vo.getCycleTestItemId());
if (item != null) {
vo.setCycleTestItemName(item.getName());
vo.setCycleTestItemCondition(item.getCondition());
}
CycleTestStandard standard = standardGenService.getById(item.getCycleTestStandardId());
vo.setCycleTestItemName(item.getName());
vo.setCycleTestItemCondition(item.getCondition());
vo.setCycleTestStandardName(standard.getName());
if (standard != null) {
vo.setCycleTestStandardName(standard.getName());
CycleTestStandardGenVO standardGenVO = CycleTestStandardGenWrapper.build().entityVO(standard);
standardService.setVoValue(standardGenVO);
vo.setStandard(standardGenVO);
}
{
R<UserInfo> ui = userClient.userInfo(vo.getProcessUserId());
if (!Objects.isNull(ui)) {
@ -334,4 +359,26 @@ public class CycleTestTaskService {
// log.info("{}", ossFile);
// return R.success("");
// }
private LocalDate issueDate(CycleTestTask t) {
return null;
}
public void test() {
log.warn("test");
generateAuto(1994327131919831041L);
{
JobExt je = new JobExt();
je.setJobType(JobTypeConst.WEEK);
je.setJobTypeWeekValue("3,4");
log.warn(PowerJobUtil.buildCronWeek(je));
}
{
// JobExt je = new JobExt();
// je.setJobType(JobTypeConst.MONTH);
// je.setJobTypeMonthValue("09");
// log.warn(PowerJobUtil.buildCronMonth(je));
}
}
}

@ -47,12 +47,12 @@ public class PowerJobUtil {
return module + "-" + service + "-" + id + "-" + type;
}
public String buildCron(JobExt jv) {
final Integer type = jv.getJobType();
public static String buildCron(JobExt jobExt) {
final Integer type = jobExt.getJobType();
if (Objects.equals(JobTypeConst.WEEK, type)) {
return buildCronWeek(jv);
return buildCronWeek(jobExt);
} else if (Objects.equals(JobTypeConst.MONTH, type)) {
return buildCronMonth(jv);
return buildCronMonth(jobExt);
} else if (Objects.equals(JobTypeConst.YEAR, type)) {
} else {
@ -63,29 +63,30 @@ public class PowerJobUtil {
/**
*
* @param jv
* @param jobExt
* @return 生成一个cron表达式
*/
public String buildCronWeek(JobExt jv) {
if (!JobTypeConst.WEEK.equals(jv.getJobType()) || StringUtils.isBlank(jv.getJobTypeWeekValue())) {
public static String buildCronWeek(JobExt jobExt) {
if (!JobTypeConst.WEEK.equals(jobExt.getJobType()) || StringUtils.isBlank(jobExt.getJobTypeWeekValue())) {
throw new IllegalArgumentException("error param! type week.");
}
return StringUtils.replace(TYPE_WEEK_CRON,
JobTypeConst.SEARCH + JobTypeConst.SEARCH_WEEK,
jv.getJobTypeWeekValue());
jobExt.getJobTypeWeekValue()
);
}
/**
*
* @param jv
* @param jobExt
* @return 生成一个cron表达式
*/
public String buildCronMonth(JobExt jv) {
if (!JobTypeConst.MONTH.equals(jv.getJobType()) || StringUtils.isBlank(jv.getJobTypeMonthValue())) {
public static String buildCronMonth(JobExt jobExt) {
if (!JobTypeConst.MONTH.equals(jobExt.getJobType()) || StringUtils.isBlank(jobExt.getJobTypeMonthValue())) {
throw new IllegalArgumentException("error param! type month.");
}
// 月的第几日
int day = Integer.parseInt(jv.getJobTypeMonthValue());
int day = Integer.parseInt(jobExt.getJobTypeMonthValue());
return StringUtils.replace(TYPE_MONTH_CRON,
JobTypeConst.SEARCH + JobTypeConst.SEARCH_DAY,
"" + day);
@ -93,14 +94,14 @@ public class PowerJobUtil {
/**
*
* @param jv
* @param jobExt
* @return 生成一个cron表达式数组
*/
public String[] buildCronYear(JobExt jv) {
if (!JobTypeConst.YEAR.equals(jv.getJobType()) || StringUtils.isBlank(jv.getJobTypeYearValue())) {
public String[] buildCronYear(JobExt jobExt) {
if (!JobTypeConst.YEAR.equals(jobExt.getJobType()) || StringUtils.isBlank(jobExt.getJobTypeYearValue())) {
throw new IllegalArgumentException("error param! type year.");
}
String[] paramArray = StringUtils.split(jv.getJobTypeYearValue(), ",");
String[] paramArray = StringUtils.split(jobExt.getJobTypeYearValue(), ",");
String[] cronArray = new String[paramArray.length];
for (int i = 0; i < paramArray.length; i++) {
String param = paramArray[i];
@ -125,4 +126,8 @@ public class PowerJobUtil {
}
return null;
}
public int test() {
return 0;
}
}

Loading…
Cancel
Save