|  |  |  | 
|---|
|  |  |  | return agvBasDevpDto; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //一个工作位可能会对应多个工作档,显示工作状态最大的工作档 | 
|---|
|  |  |  | List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>() | 
|---|
|  |  |  | .eq("loc_no", agvBasDevpDto.getDevNo()) | 
|---|
|  |  |  | .or().eq("source_loc_no",agvBasDevpDto.getDevNo())); | 
|---|
|  |  |  | 
|---|
|  |  |  | List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectList(new EntityWrapper<AgvWaitPakin>() | 
|---|
|  |  |  | .eq("supp_code", agvBasDevpDto.getBarcode())); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //如果有入库通知档,则该工作位为入库作业 | 
|---|
|  |  |  | if(!Cools.isEmpty(agvWaitPakinList)){ | 
|---|
|  |  |  | //用于电视机显示 | 
|---|
|  |  |  | agvBasDevpDto.setAgvWaitPakins(agvWaitPakinList); | 
|---|
|  |  |  | //用于可视化站点显示 | 
|---|
|  |  |  | agvBasDevpDto.setAgvWaitPakin(agvWaitPakinList.get(0)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //如果没有入库通知档,则该工作位为出库作业 | 
|---|
|  |  |  | if(Cools.isEmpty(agvWaitPakinList)){ | 
|---|
|  |  |  | //AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectOne(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",agvWrkMast.getWrkNo())); | 
|---|
|  |  |  | List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //agv站点可视化管理中的结余数量显示 | 
|---|
|  |  |  | for(AgvWrkDetl agvWrkDetl : agvWrkDetlList){ | 
|---|
|  |  |  | agvWrkDetl.setVolume(0.0); | 
|---|
|  |  |  | //AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getSourceLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime()); | 
|---|
|  |  |  | if(agvWrkMast.getIoType() == 103){ | 
|---|
|  |  |  | //AgvLocDetl agvLocDetl = agvLocDetlService.selectByLocNo(agvWrkMast.getSourceLocNo()); | 
|---|
|  |  |  | //寻找是否有相同物料的工作档明细,并返回数量之和 | 
|---|
|  |  |  | double anfme = getAllAnfmeInAgvWrkDetlList(agvWrkDetlList,agvWrkDetl); | 
|---|
|  |  |  | AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getSourceLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime()); | 
|---|
|  |  |  | agvWrkDetl.setVolume(agvLocDetl.getAnfme() - agvWrkDetl.getAnfme()); | 
|---|
|  |  |  | //用于结余数量显示 | 
|---|
|  |  |  | agvWrkDetl.setVolume(agvLocDetl.getAnfme() - anfme); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(agvWrkMast.getIoType() == 53){ | 
|---|
|  |  |  | AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime()); | 
|---|
|  |  |  | //AgvLocDetl agvLocDetl = agvLocDetlService.selectByLocNo(agvWrkMast.getLocNo()); | 
|---|
|  |  |  | agvWrkDetl.setVolume(agvLocDetl.getAnfme()); | 
|---|
|  |  |  | //agvWrkDetl.setAnfme(agvLocDetl.getAnfme() - agvWrkDetl.getAnfme()); | 
|---|
|  |  |  | if(Cools.isEmpty(agvLocDetl)){ | 
|---|
|  |  |  | agvWrkDetl.setVolume(0.0); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | agvWrkDetl.setVolume(agvLocDetl.getAnfme()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(!Cools.isEmpty(agvWrkDetlList)){ | 
|---|
|  |  |  | //用于电视机显示 | 
|---|
|  |  |  | agvBasDevpDto.setAgvWrkDetls(agvWrkDetlList); | 
|---|
|  |  |  | //用于可视化站点显示 | 
|---|
|  |  |  | agvBasDevpDto.setAgvWrkDetl(agvWrkDetlList.get(0)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | return result; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private double getAllAnfmeInAgvWrkDetlList(List<AgvWrkDetl> agvWrkDetlList, AgvWrkDetl wd0) { | 
|---|
|  |  |  | double allAnfme = 0; | 
|---|
|  |  |  | for (AgvWrkDetl wd1 : agvWrkDetlList){ | 
|---|
|  |  |  | if(Cools.eq(wd0.getMatnr(),wd1.getMatnr()) | 
|---|
|  |  |  | && Cools.eq(wd0.getBatch(),wd1.getBatch()) | 
|---|
|  |  |  | && Cools.eq(wd0.getThreeCode(),wd1.getThreeCode()) | 
|---|
|  |  |  | && Cools.eq(wd0.getDeadTime(),wd1.getDeadTime())){ | 
|---|
|  |  |  | allAnfme += wd1.getAnfme(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return allAnfme; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void setFlagForAgvBasDevpDto(AgvWrkMast agvWrkMast, AgvBasDevpDto agvBasDevpDto){ | 
|---|
|  |  |  | //当工作档类型为101.出库 并且 工作位状态为F.在库时,显示容器离场按钮 | 
|---|
|  |  |  | if(agvWrkMast.getIoType() == 101 && "F".equals(agvBasDevpDto.getLocSts())){ | 
|---|