| | |
| | | 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 |
| | |
| | | |
| | | private Integer staNo; |
| | | |
| | | private String agvStaNo; |
| | | |
| | | private List<LocDto> locDtos; |
| | | |
| | | { |
| | |
| | | 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, String agvStaNo, LocDto locDto) { |
| | | this.locNo = locNo; |
| | | this.agvStaNo = agvStaNo; |
| | | this.locDtos.add(locDto); |
| | | } |
| | | |
| | | public TaskDto(String locNo, Integer staNo, List<LocDto> locDtos) { |
| | |
| | | return false; |
| | | } |
| | | for (TaskDto taskDto : list) { |
| | | if(Cools.isEmpty(taskDto.getStaNo()) && dto.getLocNo().equals(taskDto.getLocNo())){ |
| | | return true; |
| | | } |
| | | if (dto.getLocNo().equals(taskDto.getLocNo()) && taskDto.getStaNo().equals(dto.getStaNo())) { |
| | | return true; |
| | | } |
| | |
| | | return null; |
| | | } |
| | | for (TaskDto taskDto : list) { |
| | | if(Cools.isEmpty(taskDto.getStaNo()) && dto.getLocNo().equals(taskDto.getLocNo())){ |
| | | return taskDto; |
| | | } |
| | | if (dto.getLocNo().equals(taskDto.getLocNo()) && taskDto.getStaNo().equals(dto.getStaNo())) { |
| | | return taskDto; |
| | | } |
| | |
| | | return null; |
| | | } |
| | | |
| | | public boolean isAll(){ |
| | | // 汇总不考虑序列码 |
| | | List<DetlDto> detlDtos = new ArrayList<>(); |
| | | for (LocDto locDto : this.getLocDtos()) { |
| | | DetlDto dto = new DetlDto(locDto.getMatnr(), locDto.getBatch(), locDto.getAnfme(), locDto.getCsocode(), locDto.getIsoseq(),locDto.getContainerCode()); |
| | | //dto.setContainerCode(locDto.getContainerCode()); |
| | | if (DetlDto.has(detlDtos, dto)) { |
| | | DetlDto detlDto = DetlDto.find(detlDtos, locDto.getMatnr(), dto.getBatch(),dto.getCsocode(),dto.getIsoseq(),dto.getContainerCode()); |
| | | assert detlDto != null; |
| | | detlDto.setAnfme(detlDto.getAnfme() + locDto.getAnfme()); |
| | | } else { |
| | | detlDtos.add(new DetlDto(locDto.getMatnr(), locDto.getBatch(), locDto.getAnfme(),locDto.getCsocode(),locDto.getIsoseq(),locDto.getContainerCode())); |
| | | } |
| | | } |
| | | |
| | | // 查询当前库位号所有的库存明细 |
| | | 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.eq(dto.getBatch(),locDetl.getBatch())){ |
| | | continue; |
| | | } |
| | | if(!Cools.eq(dto.getCsocode(),locDetl.getThreeCode())){ |
| | | continue; |
| | | } |
| | | if(!Cools.eq(dto.getIsoseq(),locDetl.getDeadTime())){ |
| | | continue; |
| | | } |
| | | if(!Cools.eq(dto.getContainerCode(),locDetl.getSuppCode())){ |
| | | 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 (!Cools.isEmpty(dto.getContainerCode()) && !Cools.isEmpty(locDetl.getSuppCode())) { |
| | | // if (!dto.getContainerCode().equals(locDetl.getSuppCode())) { |
| | | // continue; |
| | | // } |
| | | // } |
| | | if (dto.getAnfme() > locDetl.getAnfme()) { |
| | | throw new CoolException("服务器内部错误"); |
| | | } |
| | | if (dto.getAnfme().equals(locDetl.getAnfme())) { |
| | | sameNumber++; |
| | | iterator.remove(); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | return sameNumber == locDetls.size(); |
| | | } |
| | | |
| | | } |