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.*; /** * Created by vincent on 2020/6/17 */ @Data public class OutLocDto { private String locNo; private List locDetlDtos = new ArrayList<>(); public OutLocDto() { } public OutLocDto(String locNo, LocDetlDto locDetlDto) { this.locNo = locNo; this.locDetlDtos.add(locDetlDto); } public boolean isAll(){ List locDetlDtosCp = new ArrayList<>(this.locDetlDtos); // 查询当前库位号所有的库存明细 LocDetlService locDetlService = SpringUtils.getBean(LocDetlService.class); List locDetls = locDetlService.selectList(new EntityWrapper().eq("loc_no", this.locNo)); if (locDetls == null || locDetls.isEmpty()){ throw new CoolException("检索库存明细失败,库位号=" + this.locNo); } int sameNumber = 0; for (LocDetl locDetl : locDetls) { Iterator iterator = locDetlDtosCp.iterator(); while (iterator.hasNext()) { LocDetlDto next = iterator.next(); if (!next.getLocDetl().getMatnr().equals(locDetl.getMatnr())) { continue; } if (!Cools.eq(next.getLocDetl().getBatch(), locDetl.getBatch())) { continue; } if (next.getCount() > locDetl.getAnfme()) { throw new CoolException("服务器内部错误"); } if (next.getCount().equals(locDetl.getAnfme())) { sameNumber++; iterator.remove(); break; } } } return sameNumber == locDetls.size(); } }