| | |
| | | /**
|
| | | * @author Ryan
|
| | | * @date 2025/6/20
|
| | | * @description: 波次加入历史档
|
| | | * @description: 更新波次明细,加入历史档
|
| | | * @version 1.0
|
| | | */
|
| | | @Scheduled(cron = "0/30 * * * * ? ")
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void addWaveHistories() {
|
| | | List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.COMPLETE_OUT.id));
|
| | | List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.UPDATED_OUT.id));
|
| | | if (tasks.isEmpty()) {
|
| | | return;
|
| | | }
|
| | |
| | | @Scheduled(cron = "0/3 * * * * ? ")
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void taskWave() {
|
| | | InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
|
| | | try {
|
| | | Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "autoCreateWaveSeed").eq(Dict::getStatus, 1));
|
| | | if (dict == null) {
|
| | | return;
|
| | |
| | | //查询状态为RCS任务完成所有任务单据
|
| | | // List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id));
|
| | | List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WCS_EXECUTE_OUT.id));
|
| | | HashSet<String> sycMatnrs = new HashSet<>();
|
| | | // HashSet<String> sycMatnrs = new HashSet<>();
|
| | | if (taskList.isEmpty()) {
|
| | | // throw new CoolException("没有可播种任务!!");
|
| | | } else {
|
| | |
| | | continue;
|
| | | }
|
| | | // 过滤已经生成波次播种数据的任务 该任务的任务明细号不能在播种数据表里面
|
| | | long count = waveSeedService.count(new LambdaQueryWrapper<WaveSeed>().in(WaveSeed::getTaskDetlId, taskDetls.stream().map(TaskDetl::getId).collect(Collectors.toList())).eq(WaveSeed::getHostId, hostId));
|
| | | long count = waveSeedService.count(new LambdaQueryWrapper<WaveSeed>()
|
| | | .in(WaveSeed::getTaskDetlId, taskDetls.stream()
|
| | | .map(TaskDetl::getId).collect(Collectors.toList()))
|
| | | .eq(WaveSeed::getHostId, hostId));
|
| | | if (count > 0) {
|
| | | continue;
|
| | | }
|
| | |
| | | for (TaskDetl taskDetl : taskDetls) {
|
| | | //分配订单
|
| | | Long waveId = taskDetl.getWaveId();
|
| | | //同一个物料只添加一次播种任务
|
| | | if (sycMatnrs.contains(taskDetl.getMatnr())) {
|
| | | continue;
|
| | | }
|
| | | sycMatnrs.add(taskDetl.getMatnr());
|
| | | // //同一个物料只添加一次播种任务
|
| | | // if (sycMatnrs.contains(taskDetl.getMatnr())) {
|
| | | // continue;
|
| | | // }
|
| | | // sycMatnrs.add(taskDetl.getMatnr());
|
| | |
|
| | | List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getWaveId, waveId));
|
| | | if (list.isEmpty()) {
|
| | |
| | | anfme -= workQty;
|
| | |
|
| | | orderUtils.updateWorkQty(orderDetl.getId(), workQty, true);
|
| | | //
|
| | | //fixme 生成波次播种数据时,不自动添加站点绑定,站点绑定调整至出库绑定播种库位时更新
|
| | | // CacheSite cacheSite = cacheSiteService.getOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderId, orderDetl.getOrderId()).eq(CacheSite::getHostId, hostId));
|
| | | // if (cacheSite == null) {
|
| | | // throw new CoolException("缓存站空间不存在");
|
| | | // }
|
| | |
|
| | |
|
| | | WaveSeed waveSeed = new WaveSeed();
|
| | | // waveSeed.setSiteId(cacheSite.getId());
|
| | | // waveSeed.setSiteNo(cacheSite.getSiteNo());
|
| | | waveSeed.setOrderNo(orderDetl.getOrderNo());
|
| | | waveSeed.setOrderId(orderDetl.getOrderId());
|
| | | waveSeed.setOrderDetlId(orderDetl.getId());
|
| | | waveSeed.setTaskId(taskDetl.getTaskId());
|
| | | waveSeed.setTaskNo(taskDetl.getTaskNo());
|
| | | waveSeed.setWaveId(taskDetl.getWaveId()).setWaveNo(taskDetl.getWaveNo());
|
| | | waveSeed.setTaskDetlId(taskDetl.getId());
|
| | | //为满足当前需求,经确认,改成订单数量
|
| | | waveSeed.setAnfme(orderDetl.getAnfme());
|
| | | waveSeed.setAnfme(taskDetl.getAnfme());
|
| | | waveSeed.setWorkQty(0D);
|
| | | waveSeed.setMatnr(taskDetl.getMatnr());
|
| | | waveSeed.setBatch(taskDetl.getBatch());
|
| | |
| | | if (!waveSeedService.save(waveSeed)) {
|
| | | throw new CoolException("波次播种创建失败");
|
| | | }
|
| | | // cacheSite.setOrderId(orderDetl.getOrderId());
|
| | | // cacheSite.setOrderNo(orderDetl.getOrderNo());
|
| | | // cacheSite.setSiteStatus(CacheSiteStatusType.R.id);
|
| | | // cacheSite.setUpdateTime(new Date());
|
| | | // if (!cacheSiteService.updateById(cacheSite)) {
|
| | | // throw new CoolException("缓存站更新失败");
|
| | | // }
|
| | |
|
| | | }
|
| | | }
|
| | |
|
| | | // task.setTaskSts(TaskStsType.GENERATE_WAVE_SEED.id);
|
| | | // task.setUpdateTime(new Date());
|
| | | // if (!taskService.updateById(task)) {
|
| | | // throw new CoolException("任务更新失败");
|
| | | // }
|
| | | }
|
| | | }
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
| | | } finally {
|
| | | InterceptorIgnoreHelper.clearIgnoreStrategy();
|
| | | }
|
| | | }
|
| | |
|
| | | }
|