| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.vincent.rsf.framework.exception.CoolException; |
| | | import com.vincent.rsf.server.manager.entity.*; |
| | | import com.vincent.rsf.server.manager.enums.CheckDiffExceStatus; |
| | | import com.vincent.rsf.server.manager.enums.CheckExceStatus; |
| | | import com.vincent.rsf.server.manager.enums.TaskStsType; |
| | | import com.vincent.rsf.server.manager.enums.TaskType; |
| | | import com.vincent.rsf.server.manager.enums.*; |
| | | import com.vincent.rsf.server.manager.service.*; |
| | | import com.vincent.rsf.server.manager.service.impl.LocServiceImpl; |
| | | import com.vincent.rsf.server.system.utils.SystemAuthUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | private CheckOrderService checkOrderService; |
| | | @Autowired |
| | | private CheckOrderItemService checkOrderItemService; |
| | | @Autowired |
| | | private LocServiceImpl locService; |
| | | |
| | | /** |
| | | * @author Ryan |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void genReCheck() { |
| | | List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>() |
| | | .notExists("SELECT 1 FROM man_check_diff_item cdi WHERE id = cdi.task_item_id")); |
| | | .notExists("SELECT 1 FROM man_check_diff_item cdi WHERE id != cdi.task_item_id")); |
| | | if (taskItems.isEmpty()) { |
| | | return; |
| | | } |
| | |
| | | List<CheckDiffItem> diffItems = new ArrayList<>(); |
| | | CheckDiff finalCheckDiff = checkDiff; |
| | | items.forEach(item -> { |
| | | Task task = taskService.getById(item.getTaskId()); |
| | | if (Objects.isNull(task)) { |
| | | throw new CoolException("数据错误:任务不存在!!"); |
| | | } |
| | | CheckDiffItem checkDiffItem = new CheckDiffItem(); |
| | | BeanUtils.copyProperties(item, checkDiffItem); |
| | | checkDiffItem.setCheckId(finalCheckDiff.getId()) |
| | |
| | | .setTaskId(item.getTaskId()) |
| | | .setCreateBy(loginUserId) |
| | | .setCreateTime(new Date()) |
| | | .setBarcode(task.getBarcode()) |
| | | .setUpdateBy(loginUserId) |
| | | .setUpdateTime(new Date()) |
| | | .setOrderCode(finalCheckDiff.getOrderCode()); |
| | | diffItems.add(checkDiffItem); |
| | | |
| | | if (Objects.isNull(finalCheckDiff.getAreaId())) { |
| | | Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>() |
| | | .eq(Loc::getCode, task.getOrgLoc()) |
| | | .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_R.type)); |
| | | if (Objects.isNull(loc)) { |
| | | throw new CoolException("盘点库位不存在!!"); |
| | | } |
| | | finalCheckDiff.setAreaId(loc.getAreaId()).setAreaName(loc.getAreaId$()); |
| | | |
| | | if (!checkDiffService.updateById(finalCheckDiff)) { |
| | | throw new CoolException("库区信息修改失败!!"); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | if (!checkDiffItemService.saveBatch(diffItems)) { |