| | |
| | | package com.zy.asrs.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import com.zy.asrs.entity.ManPakOut; |
| | | import com.zy.asrs.mapper.ManPakOutMapper; |
| | | import com.zy.asrs.service.ManPakOutService; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | @Service("manPakOutService") |
| | | public class ManPakOutServiceImpl extends ServiceImpl<ManPakOutMapper, ManPakOut> implements ManPakOutService { |
| | |
| | | public ManPakOut selectByOrderWithName(String orderNo) { |
| | | return this.baseMapper.selectByOrderWithName(orderNo); |
| | | } |
| | | |
| | | @Override |
| | | public List<ManPakOut> selectByLocType(String locType) { |
| | | return this.selectList(new EntityWrapper<ManPakOut>().like("loc_no",locType+"-") |
| | | .andNew().eq("status",0).or().eq("status",8)); |
| | | } |
| | | |
| | | @Override |
| | | public List<ManPakOut> pakoutByLocType(String locType) { |
| | | List<ManPakOut> manPakOuts = this.selectByLocType(locType); |
| | | |
| | | manPakOuts.sort((m1,m2) -> { |
| | | //取库位编码最后6位得到排列层 |
| | | String locNo1 = m1.getLocNo().substring(m1.getLocNo().length()-6); |
| | | String locNo2 = m2.getLocNo().substring(m2.getLocNo().length()-6); |
| | | |
| | | int row1 = Integer.parseInt(locNo1.substring(0, 2)); |
| | | int row2 = Integer.parseInt(locNo2.substring(0, 2)); |
| | | int bay1 = Integer.parseInt(locNo1.substring(2,4)); |
| | | int bay2 = Integer.parseInt(locNo2.substring(2,4)); |
| | | |
| | | //每两排为一个起点,根据列来由近到远排序 |
| | | if((row1 + 1)/2 != (row2+1)/2){ |
| | | return row1 - row2; |
| | | }else { |
| | | return bay1 - bay2; |
| | | } |
| | | }); |
| | | |
| | | return manPakOuts; |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | |
| | | String str = "DT-13C-010203"; |
| | | System.out.println(str.substring(str.length()-6)); |
| | | |
| | | List<ManPakOut> list = new ArrayList<>(); |
| | | list.add(new ManPakOut("DT-C-010403")); |
| | | list.add(new ManPakOut("DT-C-050203")); |
| | | list.add(new ManPakOut("DT-C-040503")); |
| | | list.add(new ManPakOut("DT-C-030203")); |
| | | list.add(new ManPakOut("DT-C-010503")); |
| | | list.add(new ManPakOut("DT-C-020103")); |
| | | list.add(new ManPakOut("DT-C-020203")); |
| | | list.add(new ManPakOut("DT-C-040103")); |
| | | |
| | | //Collections.sort(list); |
| | | |
| | | list.sort((m1,m2) ->{ |
| | | |
| | | //取库位编码最后6位得到排列层 |
| | | String locNo1 = m1.getLocNo().substring(m1.getLocNo().length()-6); |
| | | String locNo2 = m2.getLocNo().substring(m2.getLocNo().length()-6); |
| | | |
| | | int row1 = Integer.parseInt(locNo1.substring(0, 2)); |
| | | int row2 = Integer.parseInt(locNo2.substring(0, 2)); |
| | | int bay1 = Integer.parseInt(locNo1.substring(2,4)); |
| | | int bay2 = Integer.parseInt(locNo2.substring(2,4)); |
| | | |
| | | if((row1 + 1)/2 != (row2+1)/2){ |
| | | return row1 - row2; |
| | | }else { |
| | | return bay1 - bay2; |
| | | } |
| | | |
| | | }); |
| | | |
| | | list.forEach(manPakOut -> { |
| | | System.out.println(manPakOut); |
| | | }); |
| | | } |
| | | } |