Merge branch 'tzskasrs-1' of http://47.97.1.152:5880/r/zy-asrs into tzskasrs-1
| | |
| | | |
| | | List<String> selectSameDetl(@Param("matnr") String matnr); |
| | | |
| | | List<String> selectSameLevDetl(@Param("matnr") String matnr, @Param("lev") Integer lev); |
| | | |
| | | @Select("SELECT ld.loc_no FROM asr_loc_detl ld LEFT JOIN asr_loc_mast lm ON ld.loc_no = lm.loc_no WHERE (1 = 1 AND ld.matnr = #{matnr} AND (lm.row1 >= #{start} AND lm.row1 <= #{end}) AND lm.loc_sts = 'F' AND DateDiff(dd, lm.modi_time, getdate()) = 0) ORDER BY lm.modi_time ASC") |
| | | List<String> selectSameDetlToday(@Param("matnr") String matnr, @Param("start") Integer start, @Param("end") Integer end); |
| | | |
| | |
| | | */ |
| | | List<LocMast> selectAreaEmpty(Short locType1, Integer locType3); |
| | | |
| | | /** |
| | | * 搜索指定区域可用库位 |
| | | */ |
| | | List<LocMast> selectAreaEmptyByLev(Short locType1, Integer locType3, Integer lev); |
| | | |
| | | LocMast selectAvailableNearLocDesc(@Param("groupLoc") List<String> groupOuterLoc); |
| | | |
| | | LocMast selectAvailableNearLocAsc(@Param("groupOuterLoc") List<String> groupOuterLoc); |
| | |
| | | |
| | | List<WrkMast> selectSameMatnrs(@Param("matnr") String matnr); |
| | | |
| | | List<WrkMast> selectSameLevMatnrs(@Param("matnr") String matnr, @Param("lev") Integer lev); |
| | | } |
| | |
| | | List<String> getSameDetl(String matnr); |
| | | |
| | | /** |
| | | * 获取相同规格货物 |
| | | */ |
| | | List<String> getSameLevDetl(String matnr, Integer lev); |
| | | |
| | | /** |
| | | * 获取当天相同规格货物的深库位号 |
| | | * @param matnr 物料号 |
| | | * @return locNo 库位号 |
| | |
| | | List<LocMast> selectAreaEmpty(Short locType1, Integer locType3); |
| | | |
| | | /** |
| | | * 搜索指定区域可用库位 |
| | | */ |
| | | List<LocMast> selectAreaEmptyByLev(Short locType1, Integer locType3, Integer lev); |
| | | |
| | | /** |
| | | * 获取同组货架的空库位 |
| | | * @param sourceLocNo 源库位 |
| | | * @return 同组空库位集合 |
| | |
| | | |
| | | WrkMast selectOfPick(Integer wrkNo, Integer ioType); |
| | | |
| | | List<WrkMast> selectSameMatnrs(String s); |
| | | List<WrkMast> selectSameMatnrs(String matnr); |
| | | |
| | | List<WrkMast> selectSameLevMatnrs(String matnr, Integer lev); |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<String> getSameLevDetl(String matnr, Integer lev) { |
| | | return this.baseMapper.selectSameLevDetl(matnr, lev); |
| | | } |
| | | |
| | | @Override |
| | | public List<String> getSameDetlToday(String matnr, Integer start, Integer end) { |
| | | return this.baseMapper.selectSameDetlToday(matnr, start, end); |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<LocMast> selectAreaEmptyByLev(Short locType1, Integer locType3, Integer lev) { |
| | | return this.baseMapper.selectAreaEmptyByLev(locType1, locType3, lev); |
| | | } |
| | | |
| | | @Override |
| | | public List<String> queryGroupEmptyStock(String sourceLocNo) { |
| | | if (Cools.isEmpty(sourceLocNo)) { |
| | | return null; |
| | |
| | | return this.baseMapper.selectSameMatnrs(matnr); |
| | | } |
| | | |
| | | @Override |
| | | public List<WrkMast> selectSameLevMatnrs(String matnr, Integer lev) { |
| | | return this.baseMapper.selectSameLevMatnrs(matnr, lev); |
| | | } |
| | | } |
| | |
| | | return startupDto; |
| | | } |
| | | |
| | | /** |
| | | * 四向库获取库位 |
| | | */ |
| | | public StartupDto getShuttleLocNo(Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto) { |
| | | RowLastno rowLastno = rowLastnoService.selectOne(new EntityWrapper<RowLastno>().eq("whs_type", 1)); |
| | | //起始层 |
| | | Integer startLev = rowLastno.getCurrentRow(); |
| | | return getShuttleLocNo(staDescId, sourceStaNo, matNos, locTypeDto, startLev, 0); |
| | | } |
| | | |
| | | public StartupDto getShuttleLocNo(Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int startLev, int times) { |
| | | RowLastno rowLastno = rowLastnoService.selectOne(new EntityWrapper<RowLastno>().eq("whs_type", 1)); |
| | | //起始层 |
| | | Integer currentLev = rowLastno.getCurrentRow(); |
| | | if (times > 0 && startLev == currentLev) { |
| | | throw new CoolException("未找到可用库位"); |
| | | } |
| | | rowLastno.setCurrentRow(currentLev >= rowLastno.geteRow() ? rowLastno.getsRow() : currentLev + 1);//更新楼层 |
| | | rowLastnoService.updateById(rowLastno); |
| | | |
| | | // 目标库位 |
| | | LocMast locMast = null; |
| | | |
| | | // 靠近摆放规则 --- 空托 |
| | | locMast = getShuttleEmptyLocNo(staDescId, locTypeDto, currentLev); |
| | | if (locMast != null) { |
| | | //找到库位,返回dto |
| | | return getShuttleLocStartupDto(staDescId, sourceStaNo, locMast);//返回dto |
| | | } |
| | | |
| | | //单品物料 靠近摆放规则 --- 相同订单号, 同天同规格物料 |
| | | locMast = getShuttleSingleLocNo(matNos, locTypeDto, currentLev); |
| | | if (locMast != null) { |
| | | //找到库位,返回dto |
| | | return getShuttleLocStartupDto(staDescId, sourceStaNo, locMast);//返回dto |
| | | } |
| | | |
| | | // 靠近摆放规则 --- 相同订单号, 同天同规格物料 |
| | | locMast = getShuttleMixedLocNo(matNos, locTypeDto, currentLev); |
| | | if (locMast != null) { |
| | | //找到库位,返回dto |
| | | return getShuttleLocStartupDto(staDescId, sourceStaNo, locMast);//返回dto |
| | | } |
| | | |
| | | return getShuttleLocNo(staDescId, sourceStaNo, matNos, locTypeDto, startLev, times + 1); |
| | | } |
| | | |
| | | //搜索空托盘库位 |
| | | private LocMast getShuttleEmptyLocNo(Integer staDescId, LocTypeDto locTypeDto, int lev) { |
| | | LocMast locMast = null; |
| | | // 靠近摆放规则 --- 空托 |
| | | if (staDescId == 10) { |
| | | //先判断工作档,查找主档IOType=1, wrkSts < 10的工作明细,料号相同的明细库位 |
| | | List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("io_type", 10)); |
| | | for (WrkMast wrkMast : wrkMasts) { |
| | | LocMast locMast0 = locMastService.findNearloc(wrkMast.getLocNo()); |
| | | if (null != locMast0) { |
| | | // 浅库位符合尺寸检测 |
| | | if (VersionUtils.checkLocType(locMast0, locTypeDto)) { |
| | | locMast = locMast0; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | if (Cools.isEmpty(locMast)) { |
| | | List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() |
| | | .eq("loc_sts", "O").eq("lev1", lev).orderBy("row1,bay1,lev1")); |
| | | if (!locMasts.isEmpty()) { |
| | | for (LocMast loc : locMasts) { |
| | | LocMast locMast0 = locMastService.findNearloc(loc.getLocNo()); |
| | | if (null != locMast0) { |
| | | // 浅库位符合尺寸检测 |
| | | if (VersionUtils.checkLocType(locMast0, locTypeDto)) { |
| | | locMast = locMast0; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | return locMast; |
| | | } |
| | | |
| | | //混放物料 |
| | | private LocMast getShuttleMixedLocNo(List<String> matNos, LocTypeDto locTypeDto, Integer lev) { |
| | | LocMast locMast = null; |
| | | if (matNos.size() > 1) { |
| | | List<LocMast> locMasts = locMastService.selectAreaEmptyByLev(locTypeDto.getLocType1(), 1, lev);//搜索混放库位 |
| | | //混放区域直接取第一个即可 |
| | | for (LocMast mast : locMasts) { |
| | | // 浅库位符合尺寸检测 |
| | | if (VersionUtils.checkLocType(mast, locTypeDto)) { |
| | | locMast = mast; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | return locMast; |
| | | } |
| | | |
| | | //单品物料 靠近摆放规则 --- 相同订单号, 同天同规格物料 |
| | | private LocMast getShuttleSingleLocNo(List<String> matNos, LocTypeDto locTypeDto, int lev) { |
| | | LocMast locMast = null; |
| | | if (matNos.size() == 1) { |
| | | String matNo = matNos.get(0);//物料号 |
| | | //先判断工作档,查找主档IOType=1, wrkSts < 10的工作明细,料号相同的明细库位 |
| | | List<WrkMast> wrkMasts = wrkMastService.selectSameLevMatnrs(matNo, lev); |
| | | for (WrkMast wrkMast : wrkMasts) { |
| | | LocMast locMast0 = locMastService.findNearloc(wrkMast.getLocNo()); |
| | | if (null != locMast0) { |
| | | // 浅库位符合尺寸检测 |
| | | if (VersionUtils.checkLocType(locMast0, locTypeDto)) { |
| | | locMast = locMast0; |
| | | } |
| | | } |
| | | } |
| | | if (Cools.isEmpty(locMast)) { |
| | | //再判断库存明细档,料号相同的明细库位 |
| | | List<String> locNos = locDetlService.getSameLevDetl(matNo, lev); |
| | | for (String locNo : locNos) { |
| | | LocMast locMast0 = locMastService.findInnerLoc(locNo); |
| | | if (null != locMast0) { |
| | | // 浅库位符合尺寸检测 |
| | | if (VersionUtils.checkLocType(locMast0, locTypeDto)) { |
| | | locMast = locMast0; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (Cools.isEmpty(locMast)) { |
| | | //找新库位 |
| | | List<LocMast> locMasts = locMastService.selectAreaEmptyByLev(locTypeDto.getLocType1(), 2, lev);//搜索单品库位 |
| | | for (LocMast mast : locMasts) { |
| | | List<String> groupLoc = Utils.getGroupLoc(mast.getLocNo()); |
| | | if (!locMastService.checkAllLocEmpty(groupLoc)) { |
| | | continue; |
| | | } |
| | | |
| | | LocMast tmp = null; |
| | | for (String loc : groupLoc) { |
| | | LocMast locMast1 = locMastService.selectByLoc(loc); |
| | | if (locMast1 == null) { |
| | | continue; |
| | | } |
| | | |
| | | if (!locMast1.getLocSts().equals("O")) { |
| | | continue; |
| | | } |
| | | |
| | | // 浅库位符合尺寸检测 |
| | | if (VersionUtils.checkLocType(locMast1, locTypeDto)) { |
| | | tmp = locMast1; |
| | | break; |
| | | } |
| | | } |
| | | if (!Cools.isEmpty(tmp)) { |
| | | locMast = tmp; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | if (Cools.isEmpty(locMast)) { |
| | | //单品找不到库位,允许尝试从混放区域中进行搜索 |
| | | List<LocMast> locMasts2 = locMastService.selectAreaEmptyByLev(locTypeDto.getLocType1(), 1, lev);//搜索混放库位 |
| | | //混放区域直接取第一个即可 |
| | | for (LocMast mast : locMasts2) { |
| | | // 浅库位符合尺寸检测 |
| | | if (VersionUtils.checkLocType(mast, locTypeDto)) { |
| | | locMast = mast; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return locMast; |
| | | } |
| | | |
| | | //返回dto |
| | | private StartupDto getShuttleLocStartupDto(Integer staDescId, Integer sourceStaNo, LocMast locMast) { |
| | | StartupDto startupDto = new StartupDto(); |
| | | String locNo = locMast.getLocNo(); |
| | | // 获取目标站 |
| | | Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() |
| | | .eq("type_no", staDescId) |
| | | .eq("stn_no", sourceStaNo) |
| | | .eq("crn_no",Utils.stnNoToLiftNo(sourceStaNo));//借用堆垛机号字段充当提升机号 |
| | | StaDesc staDesc = staDescService.selectOne(wrapper); |
| | | if (Cools.isEmpty(staDesc)) { |
| | | log.error("入库路径不存在, staDescId={}, sourceStaNo={}", staDescId, sourceStaNo); |
| | | throw new CoolException("入库路径不存在"); |
| | | } |
| | | |
| | | // 检测目标站 |
| | | BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn()); |
| | | if (!staNo.getAutoing().equals("Y")) { |
| | | throw new CoolException("目标站" + staDesc.getCrnStn() + "不可用"); |
| | | } |
| | | |
| | | // 生成工作号 |
| | | int workNo = getWorkNo(0); |
| | | // 返回dto |
| | | startupDto.setWorkNo(workNo); |
| | | startupDto.setSourceStaNo(sourceStaNo); |
| | | startupDto.setStaNo(staNo.getDevNo()); |
| | | startupDto.setLocNo(locMast.getLocNo()); |
| | | return startupDto; |
| | | } |
| | | |
| | | } |
| | |
| | | // @Autowired |
| | | // private ErpService erpService; |
| | | |
| | | @PostMapping("/pakin/loc/v2") |
| | | @ResponseBody |
| | | public synchronized R getLocNoV2(@RequestBody SearchLocParam param) { |
| | | if (Cools.isEmpty(param.getIoType())) { |
| | | return R.error("入出库类型不能为空"); |
| | | } |
| | | if (Cools.isEmpty(param.getSourceStaNo())) { |
| | | return R.error("源站编号不能为空"); |
| | | } |
| | | List<WaitPakin> waitPakins = null; |
| | | ArrayList<Mat> mats = new ArrayList<>(); |
| | | if (param.getIoType() == 1) { |
| | | if (Cools.isEmpty(param.getBarcode())) { |
| | | return R.error("条码不能为空"); |
| | | } |
| | | waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode())); |
| | | |
| | | if (Cools.isEmpty(waitPakins)) { |
| | | WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode()); |
| | | if (wrkMast != null && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 104 || wrkMast.getIoType() == 107)) { |
| | | return R.parse(CodeRes.PICK_600); |
| | | } |
| | | return R.parse(CodeRes.NO_COMB_700); |
| | | } |
| | | |
| | | for (WaitPakin waitPakin : waitPakins) { |
| | | Mat mat = matService.selectByMatnr(waitPakin.getMatnr()); |
| | | mat.setWeight(waitPakin.getAnfme()); |
| | | mats.add(mat); |
| | | } |
| | | |
| | | int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode())); |
| | | int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode())); |
| | | if (countLoc > 0 || countWrk > 0) { |
| | | return R.error("工作档/库存条码数据已存在"); |
| | | } |
| | | } |
| | | if (Cools.isEmpty(param.getLocType1())){ |
| | | return R.error("高低检测信号不能为空"); |
| | | } |
| | | |
| | | // 源站点状态检测 |
| | | BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true); |
| | | LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); |
| | | locTypeDto.setLocType1(param.getLocType1()); |
| | | |
| | | StartupDto dto = null; |
| | | switch (param.getIoType()) { |
| | | case 1://满托盘入库 |
| | | dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, mats, waitPakins, 2); |
| | | break; |
| | | case 10://空托盘入库 |
| | | dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, param.getBarcode(), 2); |
| | | break; |
| | | case 103:// 拣料入库 |
| | | case 104:// 并板入库 |
| | | case 107:// 盘点入库 |
| | | dto = pickWrkPlateIn(param.getWrkNo(), param.getIoType(), param.getSourceStaNo(), locTypeDto, 2); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | log.info("/pakin/loc/v1:"+dto + "======托盘码:"+param.getBarcode()); |
| | | return R.ok().add(dto); |
| | | } |
| | | |
| | | @PostMapping("/pakin/loc/v1") |
| | | @ResponseBody |
| | | public synchronized R getLocNo(@RequestBody SearchLocParam param) { |
| | |
| | | return R.ok().add(dto); |
| | | } |
| | | |
| | | /** |
| | | * 全板入库 |
| | | */ |
| | | public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<Mat> mats, List<WaitPakin> waitPakins) { |
| | | return startupFullPutStore(devpNo, barcode, locTypeDto, mats, waitPakins, 1); |
| | | } |
| | | |
| | | /** |
| | | * 全板入库 |
| | | */ |
| | | @Transactional |
| | | public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<Mat> mats, List<WaitPakin> waitPakins) { |
| | | public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<Mat> mats, List<WaitPakin> waitPakins, Integer version) { |
| | | // 源站点状态检测 |
| | | BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); |
| | | // 检索库位 |
| | | List<String> matnrList = mats.stream().map(Mat::getMatnr).distinct().collect(Collectors.toList()); |
| | | StartupDto dto = commonService.getLocNo(1, 1, devpNo, matnrList, locTypeDto,0); |
| | | StartupDto dto = null; |
| | | if (version == 2) { |
| | | dto = commonService.getShuttleLocNo( 1, devpNo, matnrList, locTypeDto); |
| | | }else { |
| | | dto = commonService.getLocNo(1, 1, devpNo, matnrList, locTypeDto, 0); |
| | | } |
| | | int workNo = dto.getWorkNo(); |
| | | Date now = new Date(); |
| | | // 生成工作档 |
| | |
| | | Double ioPri = wrkMastService.getIoPri(1, dto.getLocNo()); |
| | | wrkMast.setIoPri(ioPri); // 优先级 |
| | | wrkMast.setCrnNo(dto.getCrnNo()); |
| | | wrkMast.setOutMost(locMastService.isOutMost(dto.getLocNo(), true)?1:0);; |
| | | wrkMast.setOutMost(locMastService.isOutMost(dto.getLocNo(), true) ? 1 : 0); |
| | | ; |
| | | wrkMast.setSourceStaNo(dto.getSourceStaNo()); |
| | | wrkMast.setStaNo(dto.getStaNo()); |
| | | wrkMast.setLocNo(dto.getLocNo()); |
| | |
| | | |
| | | @Transactional |
| | | public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto, String barcode) { |
| | | return emptyPlateIn(devpNo, locTypeDto, barcode, 1); |
| | | } |
| | | |
| | | @Transactional |
| | | public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto, String barcode, Integer version) { |
| | | // 源站点状态检测 |
| | | BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); |
| | | // 检索库位 |
| | | StartupDto dto = commonService.getLocNo(1, 10, devpNo, null, locTypeDto,0); |
| | | StartupDto dto = null; |
| | | if (version == 2) { |
| | | dto = commonService.getShuttleLocNo(10, devpNo, null, locTypeDto); |
| | | }else { |
| | | dto = commonService.getLocNo(1, 10, devpNo, null, locTypeDto, 0); |
| | | } |
| | | int workNo = dto.getWorkNo(); |
| | | // 生成工作档 |
| | | WrkMast wrkMast = new WrkMast(); |
| | |
| | | wrkMast.setIoType(10); // 入出库状态:10.空板入库 |
| | | Double ioPri = wrkMastService.getIoPri(10, dto.getLocNo()); |
| | | wrkMast.setIoPri(ioPri); // 优先级 |
| | | wrkMast.setOutMost(locMastService.isOutMost(dto.getLocNo(), true)?1:0);; |
| | | wrkMast.setOutMost(locMastService.isOutMost(dto.getLocNo(), true) ? 1 : 0); |
| | | ; |
| | | wrkMast.setCrnNo(dto.getCrnNo()); |
| | | wrkMast.setSourceStaNo(dto.getSourceStaNo()); |
| | | wrkMast.setStaNo(dto.getStaNo()); |
| | |
| | | |
| | | @Transactional |
| | | public StartupDto pickWrkPlateIn(Integer wrkNo, Integer ioType, Integer devpNo, LocTypeDto locTypeDto) { |
| | | return pickWrkPlateIn(wrkNo, ioType, devpNo, locTypeDto, 1); |
| | | } |
| | | |
| | | @Transactional |
| | | public StartupDto pickWrkPlateIn(Integer wrkNo, Integer ioType, Integer devpNo, LocTypeDto locTypeDto, Integer version) { |
| | | WrkMast wrkMast = wrkMastService.selectOfPick(wrkNo, ioType); |
| | | if (Cools.isEmpty(wrkMast)) { |
| | | log.error("{}任务【ioType = {}】已过期!!!", wrkNo, ioType); |
| | |
| | | devpNo = 341; |
| | | } |
| | | } |
| | | StartupDto dto = commonService.getLocNo(1, ioType - 50, devpNo, matnrList, locTypeDto,0); // 库位号, 堆垛机,目标站 |
| | | StartupDto dto = null; |
| | | if (version == 2) { |
| | | dto = commonService.getShuttleLocNo( ioType - 50, devpNo, matnrList, locTypeDto); // 库位号, 堆垛机,目标站 |
| | | }else { |
| | | dto = commonService.getLocNo(1, ioType - 50, devpNo, matnrList, locTypeDto, 0); // 库位号, 堆垛机,目标站 |
| | | } |
| | | // 更新目标库位状态 |
| | | LocMast locMast = locMastService.selectById(dto.getLocNo()); |
| | | if (locMast.getLocSts().equals("O")){ |
| | |
| | | ORDER BY lm.modi_time ASC |
| | | </select> |
| | | |
| | | <select id="selectSameLevDetl" resultType="java.lang.String"> |
| | | SELECT |
| | | ld.loc_no |
| | | FROM asr_loc_detl ld |
| | | LEFT JOIN asr_loc_mast lm ON ld.loc_no = lm.loc_no |
| | | LEFT JOIN ( |
| | | select |
| | | loc_no, |
| | | count(1) as count |
| | | from asr_loc_detl |
| | | where 1=1 |
| | | group by loc_no |
| | | ) dual on dual.loc_no = lm.loc_no |
| | | WHERE 1 = 1 |
| | | AND ld.matnr = #{matnr} |
| | | AND (lm.loc_sts = 'F') |
| | | AND dual.count = 1 |
| | | AND lm.lev1 = #{lev} |
| | | ORDER BY lm.modi_time ASC |
| | | </select> |
| | | |
| | | <select id="searchByLike" resultMap="BaseResultMap"> |
| | | select * |
| | | from asr_loc_detl |
| | |
| | | <if test="locType1 != null"> |
| | | and loc_type1 = #{locType1} |
| | | </if> |
| | | ORDER BY lev1,bay1,row1 |
| | | ORDER BY row1,bay1,lev1 |
| | | </select> |
| | | |
| | | <select id="selectAreaEmptyByLev" resultMap="BaseResultMap"> |
| | | select * from asr_loc_mast |
| | | where loc_sts in ('O') |
| | | and loc_type3 = #{locType3} |
| | | <if test="locType1 != null"> |
| | | and loc_type1 = #{locType1} |
| | | </if> |
| | | and lev1 = #{lev} |
| | | ORDER BY row1,bay1,lev1 |
| | | </select> |
| | | |
| | | <select id="selectEmptyByLocNos" resultMap="BaseResultMap"> |
| | |
| | | where m.wrk_no=d.wrk_no and io_type=1 and wrk_sts < 11 and d.matnr = #{matnr} ORDER BY m.wrk_no desc |
| | | </select> |
| | | |
| | | <select id="selectSameLevMatnrs" resultMap="BaseResultMap"> |
| | | select m.loc_no from asr_wrk_mast m,asr_wrk_detl d,asr_loc_mast lm |
| | | where m.wrk_no=d.wrk_no and m.loc_no = lm.loc_no and io_type=1 and wrk_sts < 11 and d.matnr = #{matnr} and lm.lev1 = #{lev} ORDER BY m.wrk_no desc |
| | | </select> |
| | | </mapper> |