| | |
| | | import com.zy.asrs.service.AgvLocDetlService; |
| | | import com.zy.asrs.service.AgvLocMastService; |
| | | import com.zy.asrs.service.AgvWrkDetlService; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.common.model.LocDto; |
| | | import com.zy.common.model.TaskDto; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | | @Slf4j |
| | | public class AgvLocDetlServiceImpl extends ServiceImpl<AgvLocDetlMapper, AgvLocDetl> implements AgvLocDetlService { |
| | | |
| | | @Autowired |
| | |
| | | List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", taskCode)); |
| | | agvWrkDetls.stream().map(agvWrkDetl -> { |
| | | AgvLocDetl agvLocDetl = new AgvLocDetl(); |
| | | log.info("agvWrkDetl: " + agvLocDetl.getBarcode()); |
| | | BeanUtils.copyProperties(agvWrkDetl, agvLocDetl); |
| | | agvLocDetl.setLocNo(locNo); |
| | | this.insert(agvLocDetl); |
| | |
| | | locDto.setContainerCode(agvLocDetl.getSuppCode()); |
| | | //当前库位所处楼层 |
| | | int floor = Integer.parseInt(agvLocDetl.getLocNo().split("@")[1]); |
| | | locDto.setAgvStaNos(queryAgvStaNosByFloor(floor)); |
| | | //locDto.setAgvStaNos(queryAgvStaNosByFloor(floor)); |
| | | locDto.setAgvStaNos(agvBasDevpService.selectCacheShelvesStationCodeByFloor(floor)); |
| | | locDtoList.add(locDto); |
| | | |
| | | issued -= anfme; |
| | |
| | | } |
| | | |
| | | public Page<AgvLocDetl> getStockStatis(Page<AgvLocDetl> page) { |
| | | page.setRecords(baseMapper.getStockStatis(page.getCondition())); |
| | | page.setRecords(baseMapper.getStockStatis1(page.getCondition())); |
| | | page.setTotal(baseMapper.getStockStatisCount(page.getCondition())); |
| | | return page; |
| | | } |
| | |
| | | return this.selectList(wrapper); |
| | | } |
| | | |
| | | public boolean updateAnfme(Double anfme, String locNo, String matnr, String batch) { |
| | | public boolean updateAnfme(Double anfme, String locNo, String matnr, String batch, String csocode, String isocode) { |
| | | EntityWrapper<AgvLocDetl> wrapper = new EntityWrapper<>(); |
| | | Utils.confirmOnlyMat(wrapper,matnr,batch,csocode,isocode); |
| | | wrapper.eq("loc_no", locNo); |
| | | if (anfme <= 0) { |
| | | return this.delete(new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).eq("loc_no", locNo)); |
| | | return this.baseMapper.deleteLocDetl(locNo,anfme,matnr,batch,csocode,isocode) > 0; |
| | | } else { |
| | | AgvLocDetl agvLocDetl = this.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo).eq("matnr", matnr)); |
| | | AgvLocDetl agvLocDetl = this.selectOne(wrapper); |
| | | agvLocDetl.setAnfme(anfme); |
| | | return this.update(agvLocDetl,new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo).eq("matnr", matnr)); |
| | | //return baseMapper.updateAnfme(anfme, locNo, matnr, batch) > 0; |
| | | return this.baseMapper.updateAnfme(locNo,anfme,matnr,batch,csocode,isocode) > 0; |
| | | } |
| | | } |
| | | |
| | | private List<String> queryAgvStaNosByFloor(int floor){ |
| | | List<String> agvStaNos = new ArrayList<>(); |
| | | if(floor == 1){ |
| | | agvStaNos.add("CS-101"); |
| | | agvStaNos.add("CS-102"); |
| | | }else if(floor ==3){ |
| | | agvStaNos.add("CS-305"); |
| | | agvStaNos.add("CS-306"); |
| | | agvStaNos.add("CS-307"); |
| | | } |
| | | |
| | | return agvStaNos; |
| | | } |
| | | |
| | | private void wapperSetCondition(Wrapper wrapper,String column, String condition){ |
| | | if(Cools.isEmpty(condition)){ |
| | | wrapper.andNew().eq(column,"").or().isNull(column); |
| | | //wrapper.isNull(column); |
| | | }else { |
| | | wrapper.eq(column,condition); |
| | | } |
| | | } |
| | | |
| | | public AgvLocDetl selectByLocNo(String locNo){ |
| | | return this.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no",locNo)); |
| | | } |
| | | |
| | | @Override |
| | | public List<AgvLocDetl> selectByTaskDto(TaskDto taskDto) { |
| | | List<AgvLocDetl> agvLocDetls = new ArrayList<>(); |
| | | |
| | | taskDto.getLocDtos().forEach(locDto -> { |
| | | AgvLocDetl agvLocDetl = this.selectByMatnrAndBatchAndCsocodeAndisoCode(locDto.getLocNo(),locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq()); |
| | | agvLocDetls.add(agvLocDetl); |
| | | }); |
| | | return agvLocDetls; |
| | | } |
| | | |
| | | @Override |
| | | public AgvLocDetl selectByMatnrAndBatchAndCsocodeAndisoCode(String locNo, String matnr, String batch, String csocode, String isocode) { |
| | | EntityWrapper<AgvLocDetl> wrapper = new EntityWrapper<>(); |
| | | wrapper.eq("loc_no",locNo); |
| | | Utils.confirmOnlyMat(wrapper,matnr,batch,csocode,isocode); |
| | | return this.selectOne(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public Double selectSumAnfmeByLocNo(String locNo) { |
| | | return this.baseMapper.sumByLocNo(locNo); |
| | | } |
| | | |
| | | @Override |
| | | public AgvLocDetl selectLocdetl(String locNo, String matnr, String batch, String csocode, String isocode) { |
| | | return this.baseMapper.selectLocdetl(locNo,matnr,batch,csocode,isocode); |
| | | } |
| | | |
| | | |
| | | } |