[周期试验] 导出。

develop-QA
Tom Li 3 months ago
parent b7485dc7c5
commit f388070703
  1. 17
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/JobExt.java
  2. 34
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/CycleTestVO.java
  3. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestController.java
  4. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestTaskController.java
  5. 234
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestExcel.java
  6. 50
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService2.java
  7. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService2.java
  8. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskCopyServiceImpl.java
  9. 41
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/JobExtUtil.java

@ -2,17 +2,28 @@ package org.springblade.desk.quality.pojo.request;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@Data
@EqualsAndHashCode
@ToString
public class JobExt {
/**
*
*/
public static final Integer WEEK = 1;
/**
*
*/
public static final Integer MONTH = 2;
/**
*
*/
public static final Integer YEAR = 3;
/**
* 自定义CRON
*/
public static final Integer CUSTOM = 4;
/**

@ -23,56 +23,28 @@ public class CycleTestVO extends CycleTest {
@Serial
private static final long serialVersionUID = 1L;
/**
* [周期试验项目]名称
*/
@Schema(description = "[周期试验项目]名称")
private String cycleTestItemName;
/**
* [周期试验项目]试验条件
*/
@Schema(description = "[周期试验项目]试验条件")
private String cycleTestItemCondition;
/**
* [周期试验标准]id
*/
@Schema(description = "[周期试验标准]id")
private Long cycleTestStandardId;
/**
* [周期试验标准]名称
*/
@Schema(description = "[周期试验标准]名称")
private String cycleTestStandardName;
/**
* [周期试验标准][附件]id
*/
@Schema(description = "[周期试验标准][附件]id")
private Long cycleTestStandardAttachId;
/**
* 工艺员[用户]姓名
*/
@Schema(description = "工艺员[用户]姓名")
private String processUserName;
/**
* 试验技术员[用户]姓名
*/
@Schema(description = "试验技术员[用户]姓名")
private String testUserName;
/**
* 更新[用户]姓名
*/
@Schema(description = "更新[用户]姓名")
private String updateUserName;
/**
* 试验件类型 名称
*/
@Schema(description = "试验件类型 名称")
private String testTypeName;
/**
* [周期试验标准]
*/
@Schema(description = "standard")
@Schema(description = "[周期试验标准]")
private CycleTestStandardVO standard;
@Schema(description = "[镀种]多个名称")
private String plateNames;
@Schema(description = "试验周期")
private String jobExtShowText;
}

@ -22,6 +22,7 @@ import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser;
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.Func;
import org.springblade.desk.basic.util.ExcelExtUtil;
@ -193,9 +194,10 @@ public class CycleTestController extends BladeController {
// queryWrapper.lambda().eq(CycleTest::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(CycleTestEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<CycleTestExcel> list = service.exportCycleTest(queryWrapper);
List<CycleTestVO> listVO = service2.listWithoutPage(cycleTest);
List<CycleTestExcel> listExcel = BeanUtil.copyProperties(listVO, CycleTestExcel.class);
ExcelUtil.export(response, "[周期试验]数据" + DateUtil.time(),
"[周期试验]数据表", list, CycleTestExcel.class);
"[周期试验]数据表", listExcel, CycleTestExcel.class);
}
@PostMapping("/update-process-user-bat")

@ -168,9 +168,8 @@ public class CycleTestTaskController extends BladeController {
//}
//queryWrapper.lambda().eq(CycleTestTaskEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<CycleTestTaskVO> list = service.listSearchWithoutPage(search);
// todo:excel格式
// excel 导出字段
List<CycleTestTaskExcel> listExcel = BeanUtil.copyToList(list, CycleTestTaskExcel.class);
ExcelUtil.export(response, "[周期试验任务]数据" + DateUtil.time(),
"[周期试验任务]数据表", listExcel, CycleTestTaskExcel.class);
@ -219,10 +218,10 @@ public class CycleTestTaskController extends BladeController {
return service.fill(id, isDone, testDate, testAttachId, reasonForNo, reasonForOut);
}
@GetMapping("/testAuto")
@GetMapping("/generateAuto")
@ApiOperationSupport(order = 12)
@Operation(summary = "testAuto", description = "")
public R testAuto() {
@Operation(summary = "generateAuto", description = "")
public R generateAuto() {
service.generateAuto();
return R.success();
}

@ -8,12 +8,14 @@ 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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
/**
@ -28,193 +30,49 @@ import java.time.LocalDateTime;
@ContentRowHeight(18)
public class CycleTestExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Serial
private static final long serialVersionUID = 1L;
/**
* [周期试验]编码
*/
@ColumnWidth(20)
@ExcelProperty("[周期试验]编码")
private String code;
/**
* [周期试验]类型
*/
@ColumnWidth(20)
@ExcelProperty("[周期试验]类型")
private Long cycleTestType;
/**
* 名称
*/
@ColumnWidth(20)
@ExcelProperty("名称")
private String name;
/**
* [班组]id
*/
@ColumnWidth(20)
@ExcelProperty("[班组]id")
private BigDecimal teamId;
/**
* [供应商]id
*/
@ColumnWidth(20)
@ExcelProperty("[供应商]id")
private BigDecimal supplierId;
/**
* [周期试验项目]id
*/
@ColumnWidth(20)
@ExcelProperty("[周期试验项目]id")
private BigDecimal cycleTestItemId;
/**
* 试验件类型-[1]:零件;[2]:试片;
*/
@ColumnWidth(20)
@ExcelProperty("试验件类型-[1]:零件;[2]:试片;")
private BigDecimal testType;
/**
* 工艺员[用户]id
*/
@ColumnWidth(20)
@ExcelProperty("工艺员[用户]id")
private BigDecimal processUserId;
/**
* 试验技术员[用户]id
*/
@ColumnWidth(20)
@ExcelProperty("试验技术员[用户]id")
private BigDecimal testUserId;
/**
* [镀种]id
*/
@ColumnWidth(20)
@ExcelProperty("[镀种]id")
private BigDecimal plateId;
/**
* 生成任务说明
*/
@ColumnWidth(20)
@ExcelProperty("生成任务说明")
private String descGenTask;
/**
* 临期提醒说明
*/
@ColumnWidth(20)
@ExcelProperty("临期提醒说明")
private String descRemind;
/**
* 提醒文本
*/
@ColumnWidth(20)
@ExcelProperty("提醒文本")
private String remindText;
/**
* 排序
*/
@ColumnWidth(20)
@ExcelProperty("排序")
private Long sort;
/**
* 备注
*/
@ColumnWidth(20)
@ExcelProperty("备注")
private String remark;
/**
* 上次试验日期
*/
@ColumnWidth(20)
@ExcelProperty("上次试验日期")
private LocalDateTime lastTestDate;
/**
* 生成任务JobId
*/
@ColumnWidth(20)
@ExcelProperty("生成任务JobId")
private String jobIdsGenTask;
/**
* 临期提醒JobId
*/
@ColumnWidth(20)
@ExcelProperty("临期提醒JobId")
private String jobIdsRemind;
/**
* 试验时长()
*/
@ColumnWidth(20)
@ExcelProperty("试验时长(天)")
private Long testDuration;
/**
* 提前下发()
*/
@ColumnWidth(20)
@ExcelProperty("提前下发(天)")
private Long genBefore;
/**
* 临期提醒()
*/
@ColumnWidth(20)
@ExcelProperty("临期提醒(天)")
private Long remind;
/**
* 定时类型-[1]:WEEK;[2]:MONTH;[3]:YEAR;[4]:CUSTOM;
*/
@ColumnWidth(20)
@ExcelProperty("定时类型-[1]:WEEK;[2]:MONTH;[3]:YEAR;[4]:CUSTOM;")
private Long jobType;
/**
* 定时WEEK值
*/
@ColumnWidth(20)
@ExcelProperty("定时WEEK值")
private String jobTypeWeekValue;
/**
* 定时MONTH值
*/
@ColumnWidth(20)
@ExcelProperty("定时MONTH值")
private String jobTypeMonthValue;
/**
* 定时YEAR值
*/
@ColumnWidth(20)
@ExcelProperty("定时YEAR值")
private String jobTypeYearValue;
/**
* 定时CUSTOM值
*/
@ColumnWidth(20)
@ExcelProperty("定时CUSTOM值")
private String jobTypeCustomValue;
/**
* 生成任务 json config
*/
@ColumnWidth(20)
@ExcelProperty("生成任务 json config")
private String jsonConfigGenTask;
/**
* 临期提醒 json config
*/
@ColumnWidth(20)
@ExcelProperty("临期提醒 json config")
private String jsonConfigRemind;
/**
* 是否顺延-[1]:;[0]:;
*/
@ColumnWidth(20)
@ExcelProperty("是否顺延-[1]:是;[0]:否;")
private Long isPutOff;
/**
* 最小试验数量
*/
@ColumnWidth(20)
@ExcelProperty("最小试验数量")
private Long minDoTestCount;
/**
* 试验件材料
*/
@ColumnWidth(20)
@ExcelProperty("试验件材料")
private String testMat;
@Schema(description = "[镀种]多个名称")
@ColumnWidth(20)
@ExcelProperty("镀种")
private String plateNames;
@Schema(description = "[周期试验项目]名称")
@ColumnWidth(20)
@ExcelProperty("试验项目")
private String cycleTestItemName;
@Schema(description = "[周期试验项目]试验条件")
@ColumnWidth(20)
@ExcelProperty("试验条件")
private String cycleTestItemCondition;
@Schema(description = "[周期试验标准]名称")
@ColumnWidth(20)
@ExcelProperty("试验标准")
private String cycleTestStandardName;
@Schema(description = "试验件类型 名称")
@ColumnWidth(20)
@ExcelProperty("试验件")
private String testTypeName;
@Schema(description = "试验件材料")
@ColumnWidth(20)
@ExcelProperty("试验件材料")
private String testMat;
@Schema(description = "试验周期")
@ColumnWidth(20)
@ExcelProperty("试验周期")
private String jobExtShowText;
@Schema(description = "最小试验数量")
@ColumnWidth(20)
@ExcelProperty("最小试验数量")
private Integer minDoTestCount;
@Schema(description = "提前下发天数")
@ColumnWidth(20)
@ExcelProperty("提前下发天数")
private Integer genBefore;
@ColumnWidth(20)
@ExcelProperty("超期提醒天数")
private Integer remind;
@ColumnWidth(20)
@ExcelProperty("更新时间")
private Date updateTime;
}

@ -1,5 +1,6 @@
package org.springblade.desk.quality.service;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.v3.oas.annotations.Parameter;
@ -22,6 +23,7 @@ import org.springblade.desk.quality.pojo.request.CycleTestBatUpdateCycle;
import org.springblade.desk.quality.pojo.request.JobExt;
import org.springblade.desk.quality.pojo.vo.CycleTestVO;
import org.springblade.desk.quality.pojo.vo.CycleTestStandardVO;
import org.springblade.desk.quality.util.JobExtUtil;
import org.springblade.desk.quality.wrapper.CycleTestStandardWrapper;
import org.springblade.desk.quality.wrapper.CycleTestWrapper;
import org.springblade.resource.feign.IAttachClient;
@ -134,16 +136,30 @@ public class CycleTestService2 {
* @param query
* @return
*/
public R<IPage<CycleTestVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> cycleTest,
Query query) {
IPage<CycleTest> pages = service.page(Condition.getPage(query),
Condition.getQueryWrapper(cycleTest, CycleTest.class).orderByAsc(BaseCol.ID)
);
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 不分页
*
* @param cycleTest
* @return
*/
public List<CycleTestVO> listWithoutPage(Map<String, Object> cycleTest) {
QueryWrapper<CycleTest> qw = Condition.getQueryWrapper(cycleTest, CycleTest.class);
qw.orderByAsc(BaseCol.ID);
List<CycleTest> pages = service.list(qw);
List<CycleTestVO> pagesVO = CycleTestWrapper.build().listVO(pages);
pagesVO.stream().peek(this::setVOValue).collect(Collectors.toList());
return pagesVO;
}
/**
* search
*
@ -194,16 +210,22 @@ public class CycleTestService2 {
{
StringBuilder names = new StringBuilder();
List<Long> idList = Func.toLongList(vo.getPlateIds());
idList.forEach(id -> {
names.append(platingService.getById(id).getPlating());
names.append(",");
});
String namesF = names.toString();
if (StringUtils.isNotBlank(namesF) && StringUtils.endsWith(namesF, ",")) {
// 去掉结尾,
namesF = StringUtils.removeEnd(namesF, ",");
// 循环拼接
for (int i = 0; i < idList.size(); i++) {
names.append(platingService.getById(idList.get(i)).getPlating());
if (i != idList.size() - 1) { // 去掉结尾,
names.append(",");
}
}
vo.setPlateNames(names.toString());
}
//
{
if (vo.getJobType() != null && vo.getJobType() != 0) {
JobExt je = new JobExt();
BeanUtil.copyProperties(vo, je);
vo.setJobExtShowText(JobExtUtil.getShowText(je));
}
vo.setPlateNames(namesF);
}
}
}

@ -468,15 +468,10 @@ public class CycleTestTaskService2 {
.toInstant();
return mapper.selectCount(
new LambdaQueryWrapper<CycleTestTask>()
.between(CycleTestTask::getCreateTime,
Date.from(leftInstant), Date.from(rightInstant))
.between(CycleTestTask::getCreateTime, Date.from(leftInstant), Date.from(rightInstant))
);
}
private LocalDate issueDate(CycleTestTask t) {
return null;
}
/**
* 任务计划结束日期/超期日期
*
@ -559,6 +554,7 @@ public class CycleTestTaskService2 {
if (todayLD.isEqual(remindLD) || (todayLD.isAfter(remindLD) && todayLD.isBefore(outLD))) {
task.setFlagOut(BaseValue.NO);
task.setFlagApproach(BaseValue.YES);
// todo:消息中心 进行临期提醒
}
// 设置临期天数
task.setDayToPlanedFinish(getCountDayToOut(task.getId()));
@ -589,6 +585,7 @@ public class CycleTestTaskService2 {
if (todayLD.isEqual(outLD) || todayLD.isAfter(outLD)) {
task.setFlagOut(BaseValue.YES);
task.setFlagApproach(BaseValue.NO);
// todo:消息中心 进行超期提醒
// 更新状态
service.updateById(task);
}

@ -92,7 +92,7 @@ public class LiquidTankTaskCopyServiceImpl extends BaseServiceImpl<LiquidTankTas
}
WorkCenter wc = workCenterService.getById(list.get(0).getWorkCenterId());
if (wc == null) {
return R.fail("WorkCenter错误");
return R.fail("作业中心错误");
}
// 保存copy任务list数据
updateBatchById(list);
@ -120,7 +120,7 @@ public class LiquidTankTaskCopyServiceImpl extends BaseServiceImpl<LiquidTankTas
}
WorkCenter wc = workCenterService.getById(list.get(0).getWorkCenterId());
if (wc == null) {
return R.fail("WorkCenter错误");
return R.fail("作业中心错误");
}
// 保存copy任务list数据
updateBatchById(list);

@ -2,6 +2,7 @@ package org.springblade.desk.quality.util;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.quality.pojo.request.JobExt;
import java.time.*;
@ -244,6 +245,46 @@ public class JobExtUtil {
return dow == DayOfWeek.MONDAY;
}
/**
* JobExt 对象语义化界面表达
*
* @param je
* @return
*/
public static String getShowText(JobExt je) {
if (je == null) {
return "";
}
Integer type = je.getJobType();
if (type == null || type == 0) {
return "无效的类型";
}
StringBuilder sb = new StringBuilder();
if (type.equals(WEEK)) {
if (StringUtils.isBlank(je.getJobTypeWeekValue())) {
return "";
}
List<Integer> list = Func.toIntList(je.getJobTypeWeekValue());
sb.append(list.size());
sb.append("次/周");
} else if (type.equals(MONTH)) {
if (StringUtils.isBlank(je.getJobTypeMonthValue())) {
return "";
}
List<String> list = Func.toStrList(je.getJobTypeMonthValue());
sb.append(list.size());
sb.append("次/月");
} else if (type.equals(YEAR)) {
if (StringUtils.isBlank(je.getJobTypeYearValue())) {
return "";
}
List<String> list = Func.toStrList(je.getJobTypeMonthValue());
sb.append(list.size());
sb.append("次/年");
}
return sb.toString();
}
/**
* 测试执行
*

Loading…
Cancel
Save