diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java index d3be5f8b..8a4daf10 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.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 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 pages = service.page(Condition.getPage(query), qw); IPage 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 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 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 mergeList) { - return R.status(service.saveOrUpdateBatch(mergeList)); - } +// @PostMapping("/submitBat") +// @ApiOperationSupport(order = 51) +// @Operation(summary = "新增或修改批量", description = "传入LiquidTankTaskCopy List") +// public R submitBat(@Valid @RequestBody List 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 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskServiceImpl.java index 6381f547..9f138d69 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskServiceImpl.java @@ -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 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 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 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 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 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= 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 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); } }