From 58dc66a9d999c7d350e1ee4bf32b8d85b6e20e00 Mon Sep 17 00:00:00 2001 From: ZY <zc857179121@qq.com> Date: 星期六, 21 九月 2024 10:32:42 +0800 Subject: [PATCH] 逻辑调整 --- src/main/java/com/zy/common/model/TaskDto.java | 66 ++++++++++++++++++++++++++++++++- 1 files changed, 64 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zy/common/model/TaskDto.java b/src/main/java/com/zy/common/model/TaskDto.java index 02f1d74..286ab79 100644 --- a/src/main/java/com/zy/common/model/TaskDto.java +++ b/src/main/java/com/zy/common/model/TaskDto.java @@ -1,10 +1,14 @@ package com.zy.common.model; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; +import com.core.common.SpringUtils; +import com.core.exception.CoolException; +import com.zy.asrs.entity.LocDetl; +import com.zy.asrs.service.LocDetlService; import lombok.Data; -import java.util.ArrayList; -import java.util.List; +import java.util.*; /** * Created by vincent on 2022/3/28 @@ -25,6 +29,12 @@ public TaskDto(String locNo, Integer staNo) { this.locNo = locNo; this.staNo = staNo; + } + + public TaskDto(String locNo, Integer staNo, LocDto locDto) { + this.locNo = locNo; + this.staNo = staNo; + this.locDtos.add(locDto); } public TaskDto(String locNo, Integer staNo, List<LocDto> locDtos) { @@ -57,4 +67,56 @@ return null; } + public boolean isAll(){ + // 姹囨�讳笉鑰冭檻搴忓垪鐮� + List<DetlDto> detlDtos = new ArrayList<>(); + for (LocDto locDto : this.getLocDtos()) { + DetlDto dto = new DetlDto(locDto); + if (DetlDto.has(detlDtos, dto)) { + DetlDto detlDto = DetlDto.find(detlDtos, locDto); + assert detlDto != null; + detlDto.setAnfme(detlDto.getAnfme() + locDto.getAnfme()); + } else { + detlDtos.add(new DetlDto(locDto)); + } + } + + // 鏌ヨ褰撳墠搴撲綅鍙锋墍鏈夌殑搴撳瓨鏄庣粏 + LocDetlService locDetlService = SpringUtils.getBean(LocDetlService.class); + List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", this.locNo)); + if (locDetls == null || locDetls.isEmpty()){ + throw new CoolException("妫�绱㈠簱瀛樻槑缁嗗け璐ワ紝搴撲綅鍙�=" + this.locNo); + } + int sameNumber = 0; + for (LocDetl locDetl : locDetls) { + Iterator<DetlDto> iterator = detlDtos.iterator(); + while (iterator.hasNext()) { + DetlDto dto = iterator.next(); + if (!dto.getMatnr().equals(locDetl.getMatnr())) { + continue; + } + if (Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(locDetl.getBatch())) { + continue; + } + if (!Cools.isEmpty(dto.getBatch()) && Cools.isEmpty(locDetl.getBatch())) { + continue; + } + if (!Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(locDetl.getBatch())) { + if (!dto.getBatch().equals(locDetl.getBatch())) { + continue; + } + } + if (dto.getAnfme() > locDetl.getAnfme()) { + throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�"); + } + if (dto.getAnfme().equals(locDetl.getAnfme())) { + sameNumber++; + iterator.remove(); + break; + } + } + } + return sameNumber == locDetls.size(); + } + } -- Gitblit v1.9.1