修复 槽液检测结果 生成曲线相关问题。

develop-QA
Tom Li 3 months ago
parent 1236da22e6
commit dd9b94f610
  1. 804
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTaskCopy.java
  2. 22
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawSingleVO.java
  3. 8
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawVO.java
  4. 82
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java
  5. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService2.java
  6. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskSetVoService.java
  7. 34
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskServiceImpl.java

@ -25,208 +25,208 @@ import java.time.LocalDateTime;
@EqualsAndHashCode(callSuper = true)
public class LiquidTankTaskCopy 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";
/**
* [作业中心]id
*/
/**
* [作业中心]id
*/
public static final String COL_WORK_CENTER_ID = "WORK_CENTER_ID";
/**
* [作业槽]id
*/
/**
* [作业槽]id
*/
public static final String COL_WORK_TANK_ID = "WORK_TANK_ID";
/**
* [槽液]id
*/
/**
* [槽液]id
*/
public static final String COL_LIQUID_TANK_ID = "LIQUID_TANK_ID";
/**
* [槽液]编号
*/
/**
* [槽液]编号
*/
public static final String COL_LIQUID_TANK_CODE = "LIQUID_TANK_CODE";
/**
* 化验人[用户]id
*/
/**
* 化验人[用户]id
*/
public static final String COL_TEST_USER_ID = "TEST_USER_ID";
/**
* 复检化验人[用户]id
*/
/**
* 复检化验人[用户]id
*/
public static final String COL_REPEAT_TEST_USER_ID = "REPEAT_TEST_USER_ID";
/**
* 工艺主管[用户]id
*/
/**
* 工艺主管[用户]id
*/
public static final String COL_PROCESS_USER_ID = "PROCESS_USER_ID";
/**
* 审核[用户]id
*/
/**
* 审核[用户]id
*/
public static final String COL_REVIEW_USER_ID = "REVIEW_USER_ID";
/**
* 发药[用户]id
*/
/**
* 发药[用户]id
*/
public static final String COL_SEND_DRUG_USER_ID = "SEND_DRUG_USER_ID";
/**
* 领药[用户]id
*/
/**
* 领药[用户]id
*/
public static final String COL_RECEIVE_DRUG_USER_ID = "RECEIVE_DRUG_USER_ID";
/**
* [班组]id
*/
/**
* [班组]id
*/
public static final String COL_TEAM_ID = "TEAM_ID";
/**
* 来源类型-[1]:手动;[2]:周期自动生成;[3]:计算自动生成;
*/
/**
* 来源类型-[1]:手动;[2]:周期自动生成;[3]:计算自动生成;
*/
public static final String COL_FROM_TYPE = "FROM_TYPE";
/**
* 名称
*/
/**
* 名称
*/
public static final String COL_NAME = "NAME";
/**
* 药品[物料]id
*/
/**
* 药品[物料]id
*/
public static final String COL_DRUG_MATERIAL_ID = "DRUG_MATERIAL_ID";
/**
* 药品[物料]编码
*/
/**
* 药品[物料]编码
*/
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_DRUG_NAME = "DRUG_NAME";
/**
* 药品批次
*/
/**
* 药品批次
*/
public static final String COL_DRUG_BAT_CODE = "DRUG_BAT_CODE";
/**
* 添加点
*/
/**
* 添加点
*/
public static final String COL_FILLING_LOCATION = "FILLING_LOCATION";
/**
* 目标值
*/
/**
* 目标值
*/
public static final String COL_TARGET_VALUE = "TARGET_VALUE";
/**
* 目标上限
*/
/**
* 目标上限
*/
public static final String COL_TARGET_VALUE_MAX = "TARGET_VALUE_MAX";
/**
* 目标下限
*/
/**
* 目标下限
*/
public static final String COL_TARGET_VALUE_MIN = "TARGET_VALUE_MIN";
/**
* 规范上限
*/
/**
* 规范上限
*/
public static final String COL_NORM_VALUE_MAX = "NORM_VALUE_MAX";
/**
* 规范下限
*/
/**
* 规范下限
*/
public static final String COL_NORM_VALUE_MIN = "NORM_VALUE_MIN";
/**
* 体积
*/
/**
* 体积
*/
public static final String COL_VOLUME = "VOLUME";
/**
* 分析周期
*/
/**
* 分析周期
*/
public static final String COL_ANALYSIS_CYCLE = "ANALYSIS_CYCLE";
/**
* 工艺含量
*/
/**
* 工艺含量
*/
public static final String COL_PROCESS_CONTENT = "PROCESS_CONTENT";
/**
* 待测成分/分析项目
*/
/**
* 待测成分/分析项目
*/
public static final String COL_TEST_ELEMENT = "TEST_ELEMENT";
/**
* 是否合格-[1]:合格;[2]:不合格;
*/
/**
* 是否合格-[1]:合格;[2]:不合格;
*/
public static final String COL_QUALIFIED = "QUALIFIED";
/**
* 实测温度
*/
/**
* 实测温度
*/
public static final String COL_TEMPERATURE_ACTUAL = "TEMPERATURE_ACTUAL";
/**
* 实测PH值
*/
/**
* 实测PH值
*/
public static final String COL_PH_ACTUAL = "PH_ACTUAL";
/**
* 复测电导率测量值
*/
/**
* 复测电导率测量值
*/
public static final String COL_CONDUCTIVITY_REPEAT_TEST_VALUE = "CONDUCTIVITY_REPEAT_TEST_VALUE";
/**
* 首次电导率测量值
*/
/**
* 首次电导率测量值
*/
public static final String COL_CONDUCTIVITY_FIRST_TEST_VALUE = "CONDUCTIVITY_FIRST_TEST_VALUE";
/**
* 首次测量值
*/
/**
* 首次测量值
*/
public static final String COL_FIRST_TEST_VALUE = "FIRST_TEST_VALUE";
/**
* 复检测量值
*/
/**
* 复检测量值
*/
public static final String COL_REPEAT_TEST_VALUE = "REPEAT_TEST_VALUE";
/**
* 首次化验时间
*/
/**
* 首次化验时间
*/
public static final String COL_FIRST_TEST_DATE = "FIRST_TEST_DATE";
/**
* 复检化验时间
*/
/**
* 复检化验时间
*/
public static final String COL_REPEAT_TEST_DATE = "REPEAT_TEST_DATE";
/**
* 审核时间
*/
/**
* 审核时间
*/
public static final String COL_REVIEW_DATE = "REVIEW_DATE";
/**
* 发药时间
*/
/**
* 发药时间
*/
public static final String COL_SEND_DRUG_DATE = "SEND_DRUG_DATE";
/**
* 领药时间
*/
/**
* 领药时间
*/
public static final String COL_RECEIVE_DRUG_DATE = "RECEIVE_DRUG_DATE";
/**
* 结束时间
*/
/**
* 结束时间
*/
public static final String COL_FINISH_DATE = "FINISH_DATE";
/**
* 需加药量
*/
/**
* 需加药量
*/
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_THEORY_VALUE = "AFTER_ADD_THEORY_VALUE";
/**
* 结束原因
*/
/**
* 结束原因
*/
public static final String COL_FINISH_REASON = "FINISH_REASON";
/**
* 审核意见
*/
/**
* 审核意见
*/
public static final String COL_REVIEW_OPINION = "REVIEW_OPINION";
/**
* 审核状态-[1]:通过;[2]:不通过;
*/
/**
* 审核状态-[1]:通过;[2]:不通过;
*/
public static final String COL_REVIEW_PASS = "REVIEW_PASS";
/**
* 备注
*/
/**
* 备注
*/
public static final String COL_REMARK = "REMARK";
/**
* 撤回原因
@ -249,256 +249,256 @@ public class LiquidTankTaskCopy extends BaseEntity {
*/
public static final String COL_FLAG_OUT = "FLAG_OUT";
/**
* [槽液检测任务]编码
*/
@Schema(description = "[槽液检测任务]编码")
private String code;
/**
* 类型
*/
@Schema(description = "类型")
private Long liquidTankTaskType;
/**
* [作业中心]id
*/
@Schema(description = "[作业中心]id")
private BigDecimal workCenterId;
/**
* [作业槽]id
*/
@Schema(description = "[作业槽]id")
private BigDecimal workTankId;
/**
* [槽液]id
*/
@Schema(description = "[槽液]id")
private BigDecimal liquidTankId;
/**
* [槽液]编号
*/
@Schema(description = "[槽液]编号")
private String liquidTankCode;
/**
* 化验人[用户]id
*/
@Schema(description = "化验人[用户]id")
private BigDecimal testUserId;
/**
* 复检化验人[用户]id
*/
@Schema(description = "复检化验人[用户]id")
private BigDecimal repeatTestUserId;
/**
* 工艺主管[用户]id
*/
@Schema(description = "工艺主管[用户]id")
private BigDecimal processUserId;
/**
* 审核[用户]id
*/
@Schema(description = "审核[用户]id")
private BigDecimal reviewUserId;
/**
* 发药[用户]id
*/
@Schema(description = "发药[用户]id")
private BigDecimal sendDrugUserId;
/**
* 领药[用户]id
*/
@Schema(description = "领药[用户]id")
private BigDecimal receiveDrugUserId;
/**
* [班组]id
*/
@Schema(description = "[班组]id")
private BigDecimal teamId;
/**
* 来源类型-[1]:手动;[2]:周期自动生成;[3]:计算自动生成;
*/
@Schema(description = "来源类型-[1]:手动;[2]:周期自动生成;[3]:计算自动生成;")
private Long fromType;
/**
* 名称
*/
@Schema(description = "名称")
private String name;
/**
* 药品[物料]id
*/
@Schema(description = "药品[物料]id")
private BigDecimal drugMaterialId;
/**
* 药品[物料]编码
*/
@Schema(description = "药品[物料]编码")
private String drugMaterialCode;
/**
* 药品物料名称
*/
@Schema(description = "药品物料名称")
private String drugMaterialName;
/**
* 药品名称
*/
@Schema(description = "药品名称")
private String drugName;
/**
* 药品批次
*/
@Schema(description = "药品批次")
private String drugBatCode;
/**
* 添加点
*/
@Schema(description = "添加点")
private BigDecimal fillingLocation;
/**
* 目标值
*/
@Schema(description = "目标值")
private BigDecimal targetValue;
/**
* 目标上限
*/
@Schema(description = "目标上限")
private BigDecimal targetValueMax;
/**
* 目标下限
*/
@Schema(description = "目标下限")
private BigDecimal targetValueMin;
/**
* 规范上限
*/
@Schema(description = "规范上限")
private BigDecimal normValueMax;
/**
* 规范下限
*/
@Schema(description = "规范下限")
private BigDecimal normValueMin;
/**
* 体积
*/
@Schema(description = "体积")
private BigDecimal volume;
/**
* 分析周期
*/
@Schema(description = "分析周期")
private Integer analysisCycle;
/**
* 工艺含量
*/
@Schema(description = "工艺含量")
private BigDecimal processContent;
/**
* 待测成分/分析项目
*/
@Schema(description = "待测成分/分析项目")
private String testElement;
/**
* 是否合格-[1]:合格;[2]:不合格;
*/
@Schema(description = "是否合格-[1]:合格;[2]:不合格;")
private Short qualified;
/**
* 实测温度
*/
@Schema(description = "实测温度")
private BigDecimal temperatureActual;
/**
* 实测PH值
*/
@Schema(description = "实测PH值")
private BigDecimal phActual;
/**
* 复测电导率测量值
*/
@Schema(description = "复测电导率测量值")
private BigDecimal conductivityRepeatTestValue;
/**
* 首次电导率测量值
*/
@Schema(description = "首次电导率测量值")
private BigDecimal conductivityFirstTestValue;
/**
* 首次测量值
*/
@Schema(description = "首次测量值")
private BigDecimal firstTestValue;
/**
* 复检测量值
*/
@Schema(description = "复检测量值")
private BigDecimal repeatTestValue;
/**
* 首次化验时间
*/
@Schema(description = "首次化验时间")
private LocalDateTime firstTestDate;
/**
* 复检化验时间
*/
@Schema(description = "复检化验时间")
private LocalDateTime repeatTestDate;
/**
* 审核时间
*/
@Schema(description = "审核时间")
private LocalDateTime reviewDate;
/**
* 发药时间
*/
@Schema(description = "发药时间")
private LocalDateTime sendDrugDate;
/**
* 领药时间
*/
@Schema(description = "领药时间")
private LocalDateTime receiveDrugDate;
/**
* 结束时间
*/
@Schema(description = "结束时间")
private LocalDateTime finishDate;
/**
* 需加药量
*/
@Schema(description = "需加药量")
private BigDecimal needAddValue;
/**
* 实际加药量
*/
@Schema(description = "实际加药量")
private BigDecimal actualAddValue;
/**
* 加药后理论值
*/
@Schema(description = "加药后理论值")
private BigDecimal afterAddTheoryValue;
/**
* 结束原因
*/
@Schema(description = "结束原因")
private String finishReason;
/**
* 审核意见
*/
@Schema(description = "审核意见")
private String reviewOpinion;
/**
* 审核状态-[1]:通过;[2]:不通过;
*/
@Schema(description = "审核状态-[1]:通过;[2]:不通过;")
private Short reviewPass;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
/**
* [槽液检测任务]编码
*/
@Schema(description = "[槽液检测任务]编码")
private String code;
/**
* 类型
*/
@Schema(description = "类型")
private Long liquidTankTaskType;
/**
* [作业中心]id
*/
@Schema(description = "[作业中心]id")
private Long workCenterId;
/**
* [作业槽]id
*/
@Schema(description = "[作业槽]id")
private Long workTankId;
/**
* [槽液]id
*/
@Schema(description = "[槽液]id")
private Long liquidTankId;
/**
* [槽液]编号
*/
@Schema(description = "[槽液]编号")
private String liquidTankCode;
/**
* 化验人[用户]id
*/
@Schema(description = "化验人[用户]id")
private Long testUserId;
/**
* 复检化验人[用户]id
*/
@Schema(description = "复检化验人[用户]id")
private Long repeatTestUserId;
/**
* 工艺主管[用户]id
*/
@Schema(description = "工艺主管[用户]id")
private Long processUserId;
/**
* 审核[用户]id
*/
@Schema(description = "审核[用户]id")
private Long reviewUserId;
/**
* 发药[用户]id
*/
@Schema(description = "发药[用户]id")
private Long sendDrugUserId;
/**
* 领药[用户]id
*/
@Schema(description = "领药[用户]id")
private Long receiveDrugUserId;
/**
* [班组]id
*/
@Schema(description = "[班组]id")
private Long teamId;
/**
* 来源类型-[1]:手动;[2]:周期自动生成;[3]:计算自动生成;
*/
@Schema(description = "来源类型-[1]:手动;[2]:周期自动生成;[3]:计算自动生成;")
private Integer fromType;
/**
* 名称
*/
@Schema(description = "名称")
private String name;
/**
* 药品[物料]id
*/
@Schema(description = "药品[物料]id")
private Long drugMaterialId;
/**
* 药品[物料]编码
*/
@Schema(description = "药品[物料]编码")
private String drugMaterialCode;
/**
* 药品物料名称
*/
@Schema(description = "药品物料名称")
private String drugMaterialName;
/**
* 药品名称
*/
@Schema(description = "药品名称")
private String drugName;
/**
* 药品批次
*/
@Schema(description = "药品批次")
private String drugBatCode;
/**
* 添加点
*/
@Schema(description = "添加点")
private Double fillingLocation;
/**
* 目标值
*/
@Schema(description = "目标值")
private Double targetValue;
/**
* 目标上限
*/
@Schema(description = "目标上限")
private Double targetValueMax;
/**
* 目标下限
*/
@Schema(description = "目标下限")
private Double targetValueMin;
/**
* 规范上限
*/
@Schema(description = "规范上限")
private Double normValueMax;
/**
* 规范下限
*/
@Schema(description = "规范下限")
private Double normValueMin;
/**
* 体积
*/
@Schema(description = "体积")
private Double volume;
/**
* 分析周期
*/
@Schema(description = "分析周期")
private Integer analysisCycle;
/**
* 工艺含量
*/
@Schema(description = "工艺含量")
private Double processContent;
/**
* 待测成分/分析项目
*/
@Schema(description = "待测成分/分析项目")
private String testElement;
/**
* 是否合格-[1]:合格;[2]:不合格;
*/
@Schema(description = "是否合格-[1]:合格;[2]:不合格;")
private Short qualified;
/**
* 实测温度
*/
@Schema(description = "实测温度")
private Double temperatureActual;
/**
* 实测PH值
*/
@Schema(description = "实测PH值")
private Double phActual;
/**
* 复测电导率测量值
*/
@Schema(description = "复测电导率测量值")
private Double conductivityRepeatTestValue;
/**
* 首次电导率测量值
*/
@Schema(description = "首次电导率测量值")
private Double conductivityFirstTestValue;
/**
* 首次测量值
*/
@Schema(description = "首次测量值")
private Double firstTestValue;
/**
* 复检测量值
*/
@Schema(description = "复检测量值")
private Double repeatTestValue;
/**
* 首次化验时间
*/
@Schema(description = "首次化验时间")
private LocalDateTime firstTestDate;
/**
* 复检化验时间
*/
@Schema(description = "复检化验时间")
private LocalDateTime repeatTestDate;
/**
* 审核时间
*/
@Schema(description = "审核时间")
private LocalDateTime reviewDate;
/**
* 发药时间
*/
@Schema(description = "发药时间")
private LocalDateTime sendDrugDate;
/**
* 领药时间
*/
@Schema(description = "领药时间")
private LocalDateTime receiveDrugDate;
/**
* 结束时间
*/
@Schema(description = "结束时间")
private LocalDateTime finishDate;
/**
* 需加药量
*/
@Schema(description = "需加药量")
private Double needAddValue;
/**
* 实际加药量
*/
@Schema(description = "实际加药量")
private Double actualAddValue;
/**
* 加药后理论值
*/
@Schema(description = "加药后理论值")
private Double afterAddTheoryValue;
/**
* 结束原因
*/
@Schema(description = "结束原因")
private String finishReason;
/**
* 审核意见
*/
@Schema(description = "审核意见")
private String reviewOpinion;
/**
* 审核状态-[1]:通过;[2]:不通过;
*/
@Schema(description = "审核状态-[1]:通过;[2]:不通过;")
private Integer reviewPass;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
/**
* 撤回原因
*/

@ -13,37 +13,37 @@ import java.util.ArrayList;
import java.util.List;
/**
* [槽液曲线] 视图实体类
* [槽液曲线] 视图实体类 单个作业槽图表VO
*
* @author Tom Shuo
* @since 2025-12-18
*/
@Data
public class LiquidTankWaveDrawItemVO implements Serializable {
public class LiquidTankWaveDrawSingleVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "[作业中心]id")
private Long wcId = 1000L;
private Long wcId;
@Schema(description = "[作业中心]名称")
private String wcName = "作业中心A";
private String wcName;
@Schema(description = "[作业槽]id")
private Long workTankId = 1000L;
private Long workTankId;
@Schema(description = "[作业槽]名称")
private String workTankName = "DDDD槽";
private String workTankName;
@Schema(description = "[槽液]id")
private Long liquidTankId = 1000L;
private Long liquidTankId;
@Schema(description = "分析项目")
private String testElement = "氰化钾";
private String testElement;
@Schema(description = "日期数组")
private List<LocalDate> testDateList = new ArrayList<>();
@Schema(description = "上限")
@Schema(description = "目标上限")
private List<Double> maxList = new ArrayList<>();
@Schema(description = "下限")
@Schema(description = "目标下限")
private List<Double> minList = new ArrayList<>();
@Schema(description = "目标值")
private List<Double> targetList = new ArrayList<>();
@Schema(description = "测量值")
@Schema(description = "复测测量值")
private List<Double> testList = new ArrayList<>();
}

@ -5,8 +5,14 @@ import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* [槽液曲线] 视图实体类 整体作业槽图表VO
*
* @author Tom Shuo
* @since 2025-12-18
*/
@Data
public class LiquidTankWaveDrawVO {
private List<LiquidTankWaveDrawItemVO> waveData = new ArrayList<>();
private List<LiquidTankWaveDrawSingleVO> waveData = new ArrayList<>();
}

@ -33,7 +33,7 @@ import org.springblade.desk.quality.excel.LiquidTankTaskCopyExcel;
import org.springblade.desk.quality.pojo.entity.LiquidTankTaskCopy;
import org.springblade.desk.quality.pojo.vo.LiquidTankTaskCopyVO;
import org.springblade.desk.quality.pojo.vo.LiquidTankWaveDrawVO;
import org.springblade.desk.quality.pojo.vo.LiquidTankWaveDrawItemVO;
import org.springblade.desk.quality.pojo.vo.LiquidTankWaveDrawSingleVO;
import org.springblade.desk.quality.service.ILiquidTankTaskCopyService;
import org.springblade.desk.quality.wrapper.LiquidTankTaskCopyWrapper;
import org.springframework.http.ResponseEntity;
@ -78,7 +78,7 @@ public class LiquidTankTaskCopyController extends BladeController {
/**
* [槽液报告] 查询Copy任务 list分页
*/
@GetMapping("/list")
@GetMapping("/listReport")
@ApiOperationSupport(order = 20)
@Operation(summary = "[槽液报告] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj")
public R<IPage<LiquidTankTaskCopyVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> map,
@ -90,8 +90,11 @@ public class LiquidTankTaskCopyController extends BladeController {
QueryWrapper<LiquidTankTaskCopy> qw = Condition.getQueryWrapper(map, LiquidTankTaskCopy.class);
// 正常结束的,异常结束的
qw.in(BaseCol.STATUS, Arrays.asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK));
// [作业中心]id
qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_CENTER_ID), LiquidTankTaskCopy.COL_WORK_CENTER_ID, Func.toLong(map.get("workCenterId")));
// [作业槽]id
qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_TANK_ID), LiquidTankTaskCopy.COL_WORK_TANK_ID, Func.toLong(map.get("workTankId")));
// 待测成分/分析项目
qw.like(map.containsKey(LiquidTankTaskCopy.COL_TEST_ELEMENT), LiquidTankTaskCopy.COL_TEST_ELEMENT, Func.toStr(map.get("testElement")));
// 范围日期
if (map.containsKey(BaseRequest.CREATE_TIME_START) && map.containsKey(BaseRequest.CREATE_TIME_END)) {
@ -99,8 +102,9 @@ public class LiquidTankTaskCopyController extends BladeController {
Date crEnd = RequestUtil.buildDateEndOfDay(map, BaseRequest.CREATE_TIME_END);
qw.between(BaseCol.CREATE_TIME, crStart, crEnd);
}
// ID 倒序
qw.orderByDesc(BaseCol.ID);
// ID 升序
qw.orderByAsc(BaseCol.ID);
//
IPage<LiquidTankTaskCopy> pages = service.page(Condition.getPage(query), qw);
IPage<LiquidTankTaskCopyVO> pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages);
pagesVO.getRecords()
@ -122,20 +126,21 @@ public class LiquidTankTaskCopyController extends BladeController {
log.warn("key = {}, value = {}, type = {}", key, value, value.getClass());
}
);
// 范围日期
Date crStart = RequestUtil.buildDateBeginOfDay(map, BaseRequest.CREATE_TIME_START);
Date crEnd = RequestUtil.buildDateEndOfDay(map, BaseRequest.CREATE_TIME_END);
QueryWrapper<LiquidTankTaskCopy> qw = Condition.getQueryWrapper(map, LiquidTankTaskCopy.class);
// 完成
// 正常结束的,异常结束的
qw.in(BaseCol.STATUS, Arrays.asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK));
// 日期区间
if (crStart != null && crEnd != null) {
// [作业中心]id
qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_CENTER_ID), LiquidTankTaskCopy.COL_WORK_CENTER_ID, Func.toLong(map.get("workCenterId")));
// 范围日期
if (map.containsKey(BaseRequest.CREATE_TIME_START) && map.containsKey(BaseRequest.CREATE_TIME_END)) {
Date crStart = RequestUtil.buildDateBeginOfDay(map, BaseRequest.CREATE_TIME_START);
Date crEnd = RequestUtil.buildDateEndOfDay(map, BaseRequest.CREATE_TIME_END);
qw.between(BaseCol.CREATE_TIME, crStart, crEnd);
}
// 排序 槽液id升序 复测化验时间升序
qw.orderByAsc(
List.of(
LiquidTankTaskCopy.COL_LIQUID_TANK_ID,
BaseCol.ID,
LiquidTankTaskCopy.COL_REPEAT_TEST_DATE
));
IPage<LiquidTankTaskCopy> pages = service.page(Condition.getPage(query), qw);
@ -145,28 +150,43 @@ public class LiquidTankTaskCopyController extends BladeController {
.peek(service::setVOValue)
.collect(Collectors.toList());
// key 自带排序
Map<Long, List<LiquidTankTaskCopyVO>> drawMap = new TreeMap<>();
// todo:
// drawMap.put()
LiquidTankWaveDrawVO draw = new LiquidTankWaveDrawVO();
{
List<LiquidTankWaveDrawItemVO> waveData = draw.getWaveData();
for (int i = 0; i < 5; i++) {
LiquidTankWaveDrawItemVO item = new LiquidTankWaveDrawItemVO();
draw.getWaveData().add(item);
for (int j = 0; j < 10; j++) {
LocalDate now = LocalDate.now();
item.getTestDateList().add(now.plusDays(j));
item.getMaxList().add(60.0);
item.getMinList().add(40.0);
item.getTargetList().add(50.0);
item.getTestList().add(51.1155);
}
// key: [作业槽]id
// value: 任务数据列表
Map<Long, List<LiquidTankTaskCopyVO>> treeMap = new TreeMap<>();
// 遍历赋值到treeMap中
pagesVO.getRecords().forEach(vo -> {
final Long wtId = vo.getWorkTankId();
// 不包含,新建
if (!treeMap.containsKey(wtId)) {
List<LiquidTankTaskCopyVO> list = new ArrayList<>();
treeMap.put(wtId, list);
}
treeMap.get(wtId).add(vo);
});
// 前端要求匹配对象
LiquidTankWaveDrawVO allVO = new LiquidTankWaveDrawVO();
List<LiquidTankWaveDrawSingleVO> allChart = allVO.getWaveData();
// 每个entry一个图表
for (Map.Entry<Long, List<LiquidTankTaskCopyVO>> entry : treeMap.entrySet()) {
Long wtId = entry.getKey();
// 数据列表
List<LiquidTankTaskCopyVO> list = entry.getValue();
LiquidTankWaveDrawSingleVO singleChart = new LiquidTankWaveDrawSingleVO();
for (LiquidTankTaskCopyVO one : list) {
singleChart.setWcId(one.getWorkCenterId());
singleChart.setWcName(one.getWcName());
singleChart.setWorkTankId(one.getWorkTankId());
singleChart.setWorkTankName(one.getWorkTankName());
singleChart.setLiquidTankId(one.getLiquidTankId());
singleChart.setTestElement(one.getTestElement());
singleChart.getMaxList().add(one.getTargetValueMax());
singleChart.getMinList().add(one.getTargetValueMin());
singleChart.getTargetList().add(one.getTargetValue());
singleChart.getTestList().add(one.getRepeatTestValue());
}
draw.setWaveData(waveData);
allChart.add(singleChart);
}
return R.data(draw);
return R.data(allVO);
}
/**

@ -6,6 +6,7 @@ import io.swagger.v3.oas.annotations.Parameter;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
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;
@ -191,13 +192,18 @@ public class CycleTestService2 {
);
// 多个 镀种名称
{
StringBuilder names = new StringBuilder();
List<Long> idList = Func.toLongList(vo.getPlateIds());
StringBuilder names = new StringBuilder();
List<Long> idList = Func.toLongList(vo.getPlateIds());
idList.forEach(id -> {
names.append(platingService.getById(id).getPlating());
names.append(",");
});
vo.setPlateNames(names.toString());
String namesF = names.toString();
if (StringUtils.isNotBlank(namesF) && StringUtils.endsWith(namesF, ",")) {
// 去掉结尾,
StringUtils.removeEnd(namesF, ",");
}
vo.setPlateNames(namesF);
}
}
}

@ -130,7 +130,7 @@ public class LiquidTankTaskSetVoService {
// 有效期
Date validDateT = DateUtil.offsetDay(vo.getCreateTime(), vo.getAnalysisCycle());
vo.setValidDate(LocalDateTimeUtil.of(validDateT).toLocalDate());
// 超出规范极限调整后的结果 todo:
// 超出规范极限调整后的结果 打印用 todo:
vo.setOutRangeResult("");
// 槽液清理记录 todo:
vo.setClearRecord("");

@ -114,7 +114,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
for (Long id : list) {
LiquidTankTask task = baseMapper.selectById(id);
task.setTestUserId(testUserId);
basicChangeStatus(id, LiquidTankTaskConst.S_PENDING_ACCEPT);
task = basicChangeStatus(id, LiquidTankTaskConst.S_PENDING_ACCEPT);
basicUpdateById(task);
}
return R.success();
@ -124,7 +124,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
@Transactional
public R accept(Long id) {
LiquidTankTask task = baseMapper.selectById(id);
basicChangeStatus(id, LiquidTankTaskConst.S_PENDING_TEST);
task = basicChangeStatus(id, LiquidTankTaskConst.S_PENDING_TEST);
basicUpdateById(task);
return R.success();
}
@ -133,7 +133,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
@Transactional
public R fillFirstBat(List<LiquidTankTask> list) {
for (LiquidTankTask task : list) {
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_REVIEW);
task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_REVIEW);
// todo:计算加药量,通过公式 公式尚未实现 公式计算的 需加药量。
// task.setAddUnit(1000);
task.setNeedAddValue(1000.0);
@ -149,7 +149,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
@Override
public R editDrugBat(List<LiquidTankTask> list) {
for (LiquidTankTask task : list) {
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_REVIEW);
task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_REVIEW);
basicUpdateById(task);
}
return R.success();
@ -163,13 +163,13 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
LiquidTankTask task = baseMapper.selectById(id);
if (Objects.equals(reviewPass, LiquidTankTaskConst.REVIEW_YES)) {
// 审核通过
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_SEND_DRUG);
task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_SEND_DRUG);
task.setReviewPass(LiquidTankTaskConst.REVIEW_YES);
// todo: flag
// todo: 是否需要加药?
} else if (Objects.equals(reviewPass, LiquidTankTaskConst.REVIEW_NO)) {
// 审核不通过
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_EDIT_DRUG);
task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_EDIT_DRUG);
task.setReviewPass(LiquidTankTaskConst.REVIEW_NO);
// todo: flag
}
@ -189,7 +189,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
public R revoke(Long id, String revokeReason) {
LiquidTankTask task = baseMapper.selectById(id);
// 审核状态再初始化
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_EDIT_DRUG);
task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_EDIT_DRUG);
task.setReviewPass(LiquidTankTaskConst.REVIEW_INIT);
basicUpdateById(task);
return R.success("成功撤回");
@ -200,7 +200,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
@Override
public R sendDrugBat(List<LiquidTankTask> list) {
for (LiquidTankTask task : list) {
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_RECEIVE_DRUG);
task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_RECEIVE_DRUG);
// 发药用户
task.setSendDrugUserId(AuthUtil.getUserId());
// 发药时间
@ -215,7 +215,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
public R receiveDrugBat(List<LiquidTankTask> list) {
// todo:用户权限过滤
for (LiquidTankTask task : list) {
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_FILL_DATA_SECOND);
task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_FILL_DATA_SECOND);
// 领药人 为指定班组 班组长
// task.setReceiveDrugUserId(AuthUtil.getUserId());
Long teamId = task.getTeamId();
@ -231,7 +231,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
@Override
public R fillRepeatBat(List<LiquidTankTask> list) {
for (LiquidTankTask task : list) {
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_FINISH_OK);
task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_FINISH_OK);
// 复检化验时间 用户填写
// 复检填报时间
task.setRepeatFillDate(LocalDateTime.now());
@ -256,7 +256,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
if (task.getStatus() >= LiquidTankTaskConst.S_PENDING_TEST) {
return R.fail("已经接收,无法转派。");
}
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_ACCEPT);
task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_ACCEPT);
task.setTestUserId(testUserId);
basicUpdateById(task);
return R.success("转派成功");
@ -266,7 +266,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
@Override
public R finishOK(Long id, String finishReason) {
LiquidTankTask task = baseMapper.selectById(id);
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_FINISH_OK);
task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_FINISH_OK);
task.setFinishReason(finishReason);
// 结束时间
task.setFinishDate(LocalDateTime.now());
@ -278,7 +278,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
@Override
public R finishFail(Long id, String finishReason) {
LiquidTankTask task = baseMapper.selectById(id);
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_FINISH_FAILED);
task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_FINISH_FAILED);
task.setFinishReason(finishReason);
task.setStatus(LiquidTankTaskConst.S_FINISH_FAILED);
// 结束时间
@ -441,17 +441,18 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
*
* @param id [任务]id
* @param newStatus 新状态
* @return 传回更改状态后的task
*/
public void basicChangeStatus(Long id, Integer newStatus) {
public LiquidTankTask basicChangeStatus(Long id, Integer newStatus) {
LiquidTankTask task = getById(id);
LiquidTankTaskCopy taskCopy = copyService.getById(id);
if (task == null) {
log.error("not find LiquidTankTask.");
return;
return null;
}
if (taskCopy == null) {
log.error("not find LiquidTankTaskCopy.");
return;
return null;
}
int oldStatus = task.getStatus();
task.setStatus(newStatus);
@ -467,5 +468,6 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
hi.setHandleUserId(AuthUtil.getUserId());
hi.setHandleDate(LocalDateTime.now());
hiService.save(hi);
return task;
}
}

Loading…
Cancel
Save