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 void updateAllStatus(String orderNo, int status) {
|
this.baseMapper.updateAllStatus(orderNo,status);
|
}
|
|
@Override
|
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);
|
});
|
}
|
}
|