修复 槽液任务相关问题。

develop-QA
Tom Li 3 months ago
parent 631500152a
commit e4b4b18f15
  1. 87
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java
  2. 183
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskServiceImpl.java

@ -87,16 +87,19 @@ 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) {
qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_CENTER_ID), LiquidTankTaskCopy.COL_WORK_CENTER_ID, Func.toLong(map.get("workCenterId")));
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)) {
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.orderByDesc(BaseCol.ID);
IPage<LiquidTankTaskCopy> pages = service.page(Condition.getPage(query), qw);
IPage<LiquidTankTaskCopyVO> pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages);
@ -192,28 +195,28 @@ public class LiquidTankTaskCopyController extends BladeController {
}
/**
* [槽液检测任务复制] 新增一条
* [槽液检测任务复制] 新增一条 从LiquidTankTask新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 30)
@Operation(summary = "新增一条", description = "传入LiquidTankTaskCopy Obj")
public R save(@Valid @RequestBody LiquidTankTaskCopy addOne) {
addOne.setId(null);
return R.status(service.save(addOne));
}
// @PostMapping("/save")
// @ApiOperationSupport(order = 30)
// @Operation(summary = "新增一条", description = "传入LiquidTankTaskCopy Obj")
// public R save(@Valid @RequestBody LiquidTankTaskCopy addOne) {
// addOne.setId(null);
// return R.status(service.save(addOne));
// }
/**
* [槽液检测任务复制] 新增批量
* [槽液检测任务复制] 新增批量 从LiquidTankTask新增
*/
@PostMapping("/saveBat")
@ApiOperationSupport(order = 31)
@Operation(summary = "新增批量", description = "传入LiquidTankTaskCopy List")
public R saveBat(@Valid @RequestBody List<LiquidTankTaskCopy> addList) {
addList.forEach(one -> {
one.setId(null);
});
return R.status(service.saveBatch(addList));
}
// @PostMapping("/saveBat")
// @ApiOperationSupport(order = 31)
// @Operation(summary = "新增批量", description = "传入LiquidTankTaskCopy List")
// public R saveBat(@Valid @RequestBody List<LiquidTankTaskCopy> addList) {
// addList.forEach(one -> {
// one.setId(null);
// });
// return R.status(service.saveBatch(addList));
// }
/**
* [槽液检测任务复制] 修改一条
@ -238,32 +241,32 @@ public class LiquidTankTaskCopyController extends BladeController {
/**
* [槽液检测任务复制] 新增或修改一条
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 50)
@Operation(summary = "新增或修改一条", description = "传入LiquidTankTaskCopy Obj")
public R submit(@Valid @RequestBody LiquidTankTaskCopy mergeOne) {
return R.status(service.saveOrUpdate(mergeOne));
}
// @PostMapping("/submit")
// @ApiOperationSupport(order = 50)
// @Operation(summary = "新增或修改一条", description = "传入LiquidTankTaskCopy Obj")
// public R submit(@Valid @RequestBody LiquidTankTaskCopy mergeOne) {
// return R.status(service.saveOrUpdate(mergeOne));
// }
/**
* [槽液检测任务复制] 新增或修改批量
*/
@PostMapping("/submitBat")
@ApiOperationSupport(order = 51)
@Operation(summary = "新增或修改批量", description = "传入LiquidTankTaskCopy List")
public R submitBat(@Valid @RequestBody List<LiquidTankTaskCopy> mergeList) {
return R.status(service.saveOrUpdateBatch(mergeList));
}
// @PostMapping("/submitBat")
// @ApiOperationSupport(order = 51)
// @Operation(summary = "新增或修改批量", description = "传入LiquidTankTaskCopy List")
// public R submitBat(@Valid @RequestBody List<LiquidTankTaskCopy> mergeList) {
// return R.status(service.saveOrUpdateBatch(mergeList));
// }
/**
* [槽液检测任务复制] 逻辑删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 61)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(service.deleteLogic(Func.toLongList(ids)));
}
// @PostMapping("/remove")
// @ApiOperationSupport(order = 61)
// @Operation(summary = "逻辑删除", description = "传入ids")
// public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
// return R.status(service.deleteLogic(Func.toLongList(ids)));
// }
/**
* [槽液检测任务复制] 导出Excel

@ -3,6 +3,8 @@
*/
package org.springblade.desk.quality.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.cron.task.Task;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -27,6 +29,7 @@ import org.springblade.desk.quality.excel.LiquidTankTaskExcel;
import org.springblade.desk.quality.mapper.LiquidTankTaskMapper;
import org.springblade.desk.quality.pojo.entity.LiquidTank;
import org.springblade.desk.quality.pojo.entity.LiquidTankTask;
import org.springblade.desk.quality.pojo.entity.LiquidTankTaskCopy;
import org.springblade.desk.quality.pojo.entity.LiquidTankTaskHi;
import org.springblade.desk.quality.pojo.vo.LiquidTankTaskVO;
import org.springblade.desk.quality.service.*;
@ -130,18 +133,14 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
@Transactional
public R fillFirstBat(List<LiquidTankTask> list) {
for (LiquidTankTask task : list) {
// todo:
// basicChangeStatus(task.getId(), LiquidTankTaskConst.S_DATA_FIRST);
// todo:计算加药量,通过公式 公式尚未实现 公式计算的。
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_REVIEW);
// todo:计算加药量,通过公式 公式尚未实现 公式计算的 需加药量。
// task.setAddUnit(1000);
task.setNeedAddValue(1000.0);
// basicChangeStatus(task.getId(), );
task.setStatus(LiquidTankTaskConst.S_PENDING_REVIEW);
// 首次化验时间
// task.setFirstTestDate(LocalDateTime.now());
// basicUpdateById(task);
// 首次化验时间 要用户填写
// 首次填报时间
task.setFirstFillDate(LocalDateTime.now());
updateById(task);
basicUpdateById(task);
}
return R.success();
}
@ -150,10 +149,8 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
@Override
public R editDrugBat(List<LiquidTankTask> list) {
for (LiquidTankTask task : list) {
// basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_REVIEW);
// basicUpdateById(task);
task.setStatus(LiquidTankTaskConst.S_PENDING_REVIEW);
updateById(task);
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_REVIEW);
basicUpdateById(task);
}
return R.success();
}
@ -165,40 +162,37 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
for (Long id : list) {
LiquidTankTask task = baseMapper.selectById(id);
if (Objects.equals(reviewPass, LiquidTankTaskConst.REVIEW_YES)) {
// todo: flag
// todo: 是否需要加药?
// 审核通过
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_SEND_DRUG);
task.setReviewPass(LiquidTankTaskConst.REVIEW_YES);
// basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_SEND_DRUG);
task.setStatus(LiquidTankTaskConst.S_PENDING_SEND_DRUG);
// task.setStatus(LiquidTankTaskConst.STATE_FINISH_OK);
} else if (Objects.equals(reviewPass, LiquidTankTaskConst.REVIEW_NO)) {
// todo: flag
// todo: 是否需要加药?
} else if (Objects.equals(reviewPass, LiquidTankTaskConst.REVIEW_NO)) {
// 审核不通过
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_EDIT_DRUG);
task.setReviewPass(LiquidTankTaskConst.REVIEW_NO);
// basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_REVIEW);
task.setStatus(LiquidTankTaskConst.S_PENDING_EDIT_DRUG);
// todo: flag
}
// 审核意见
task.setReviewOpinion(reviewOpinion);
// 审核人
task.setReviewUserId(AuthUtil.getUserId());
// 审核时间
task.setReviewDate(LocalDateTime.now());
updateById(task);
basicUpdateById(task);
}
return R.success();
return R.success("批量审核成功");
}
@Transactional
@Override
public R revoke(Long id, String revokeReason) {
LiquidTankTask task = baseMapper.selectById(id);
// 审核初始化
// 审核状态再初始化
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_EDIT_DRUG);
task.setReviewPass(LiquidTankTaskConst.REVIEW_INIT);
task.setStatus(LiquidTankTaskConst.S_PENDING_EDIT_DRUG);
// basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_REVIEW);
updateById(task);
return R.success();
basicUpdateById(task);
return R.success("成功撤回");
}
@Transactional
@ -206,24 +200,22 @@ 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.setStatus(LiquidTankTaskConst.S_PENDING_RECEIVE_DRUG);
//
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_RECEIVE_DRUG);
// 发药用户
task.setSendDrugUserId(AuthUtil.getUserId());
// 发药时间
task.setSendDrugDate(LocalDateTime.now());
basicUpdateById(task);
}
return R.success();
return R.success("发药成功");
}
@Transactional
@Override
public R receiveDrugBat(List<LiquidTankTask> list) {
// 用户权限过滤
// todo:用户权限过滤
for (LiquidTankTask task : list) {
task.setStatus(LiquidTankTaskConst.S_PENDING_FILL_DATA_SECOND);
// basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_FILL_DATA_SECOND);
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_FILL_DATA_SECOND);
// 领药人 为指定班组 班组长
// task.setReceiveDrugUserId(AuthUtil.getUserId());
Long teamId = task.getTeamId();
@ -232,23 +224,22 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
task.setReceiveDrugDate(LocalDateTime.now());
basicUpdateById(task);
}
return R.success();
return R.success("收药成功");
}
@Transactional
@Override
public R fillRepeatBat(List<LiquidTankTask> list) {
for (LiquidTankTask task : list) {
task.setStatus(LiquidTankTaskConst.S_FINISH_OK);
// basicChangeStatus(task.getId(), LiquidTankTaskConst.S_FINISH_OK);
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_FINISH_OK);
// 复检化验时间 用户填写
// 结束时间
task.setFinishDate(LocalDateTime.now());
// 复检填报时间
task.setRepeatFillDate(LocalDateTime.now());
// 结束时间
task.setFinishDate(LocalDateTime.now());
basicUpdateById(task);
}
return R.success();
return R.success("复检填报成功");
}
@Transactional
@ -261,37 +252,39 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
@Override
public R transfer(Long id, Long testUserId) {
LiquidTankTask task = baseMapper.selectById(id);
// todo:转派前提条件
// 转派 条件判断
if (task.getStatus() >= LiquidTankTaskConst.S_PENDING_TEST) {
return R.fail("已经接收,无法转派。");
}
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_ACCEPT);
task.setTestUserId(testUserId);
// basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_ACCEPT);
task.setStatus(LiquidTankTaskConst.S_PENDING_ACCEPT);
basicUpdateById(task);
return R.success();
return R.success("转派成功");
}
@Transactional
@Override
public R finishOK(Long id, String finishReason) {
LiquidTankTask task = baseMapper.selectById(id);
task.setFinishReason(finishReason);
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_FINISH_OK);
task.setFinishReason(finishReason);
// 结束时间
task.setFinishDate(LocalDateTime.now());
basicUpdateById(task);
return R.success();
return R.success("正常结束");
}
@Transactional
@Override
public R finishFail(Long id, String finishReason) {
LiquidTankTask task = baseMapper.selectById(id);
basicChangeStatus(task.getId(), LiquidTankTaskConst.S_FINISH_FAILED);
task.setFinishReason(finishReason);
// basicChangeStatus(task.getId(), LiquidTankTaskConst.S_FINISH_FAILED);
task.setStatus(LiquidTankTaskConst.S_FINISH_FAILED);
// 结束时间
task.setFinishDate(LocalDateTime.now());
basicUpdateById(task);
return R.success();
return R.success("异常结束");
}
@Override
@ -399,56 +392,80 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
return task;
}
public Boolean basicSave(LiquidTankTask task) {
/**
* 插入-两个表id相同
*
* @param task
* @return
*/
public boolean basicSave(LiquidTankTask task) {
if (task == null) {
return false;
}
task.setId(null);
// LiquidTankTaskCopy copy = new LiquidTankTaskCopy();
// BeanUtil.copyProperties(task, copy, true);
// save(task);
// copy.setId(task.getId());
// return copyService.save(copy);
return save(task);
// save后有id
save(task);
LiquidTankTaskCopy copy = new LiquidTankTaskCopy();
BeanUtil.copyProperties(task, copy, true);
// 同步新增
return copyService.save(copy);
}
public Boolean basicUpdateById(LiquidTankTask task) {
// LiquidTankTaskCopy copy = new LiquidTankTaskCopy();
// BeanUtil.copyProperties(task, copy, true);
return updateById(task);
// return copyService.updateById(copy);
/**
* 更新-两个表同时更新
*
* @param task
* @return
*/
@Transactional
public boolean basicUpdateById(LiquidTankTask task) {
if (task == null || task.getId() == null) {
return false;
}
// update
updateById(task);
LiquidTankTaskCopy copy = new LiquidTankTaskCopy();
BeanUtil.copyProperties(task, copy, true);
// 同步更新
return copyService.updateById(copy);
}
@Transactional
public Boolean basicDeleteLogic(List<Long> ids) {
return deleteLogic(ids);
// copyService.deleteLogic(ids);
deleteLogic(ids);
return copyService.deleteLogic(ids);
}
/**
* 变更状态,并保存LiquidTankTaskHi记录.
*
* @param id
* @param newStatus
* @param id [任务]id
* @param newStatus 新状态
*/
public void basicChangeStatus(Long id, Integer newStatus) {
LiquidTankTaskHi add = new LiquidTankTaskHi();
LiquidTankTask task = getById(id);
task.setStatus(newStatus);
updateById(task);
if (!Objects.isNull(task)) {
add.setLiquidTankTaskId(id);
add.setOldStatus(task.getStatus());
add.setNewStatus(newStatus);
add.setHandleUserId(AuthUtil.getUserId());
add.setHandleDate(LocalDateTime.now());
// LiquidTankTaskCopy copy = copyService.getById(id);
// 设置新状态
// copy.setStatus(newStatus);
// 保存
// hiService.save(add);
// copyService.updateById(copy);
} else {
LiquidTankTaskCopy taskCopy = copyService.getById(id);
if (task == null) {
log.error("not find LiquidTankTask.");
return;
}
if (taskCopy == null) {
log.error("not find LiquidTankTaskCopy.");
return;
}
int oldStatus = task.getStatus();
task.setStatus(newStatus);
taskCopy.setStatus(newStatus);
// 更新状态
updateById(task);
copyService.updateById(taskCopy);
// history
LiquidTankTaskHi hi = new LiquidTankTaskHi();
hi.setLiquidTankTaskId(id);
hi.setOldStatus(oldStatus);
hi.setNewStatus(newStatus);
hi.setHandleUserId(AuthUtil.getUserId());
hi.setHandleDate(LocalDateTime.now());
hiService.save(hi);
}
}

Loading…
Cancel
Save