package com.zy.asrs.service.impl; 
 | 
  
 | 
import com.baomidou.mybatisplus.mapper.EntityWrapper; 
 | 
import com.baomidou.mybatisplus.service.impl.ServiceImpl; 
 | 
import com.core.common.Cools; 
 | 
import com.zy.asrs.entity.LocRule; 
 | 
import com.zy.asrs.entity.Mat; 
 | 
import com.zy.asrs.mapper.LocRuleMapper; 
 | 
import com.zy.asrs.service.LocRuleService; 
 | 
import com.zy.asrs.service.MatService; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
  
 | 
@Service("locRuleService") 
 | 
public class LocRuleServiceImpl extends ServiceImpl<LocRuleMapper, LocRule> implements LocRuleService { 
 | 
  
 | 
    @Autowired 
 | 
    private MatService matService; 
 | 
  
 | 
    @Override 
 | 
    public LocRule find(String matnr, String batch, int startRow, int endRow) { 
 | 
        if (Cools.isEmpty(matnr)) { 
 | 
            return null; 
 | 
        } 
 | 
        Mat mat = matService.selectByMatnr(matnr); 
 | 
        if (Cools.isEmpty(mat)) { 
 | 
            return null; 
 | 
        } 
 | 
        LocRule locRule = null; 
 | 
        do { 
 | 
            locRule = this.selectOne(new EntityWrapper<LocRule>().eq("matnr", matnr).ge("row_beg", startRow).le("row_end", endRow).eq("status", 1)); 
 | 
            if (null != locRule) { 
 | 
                break; 
 | 
            } 
 | 
            locRule = this.selectOne(new EntityWrapper<LocRule>().eq("specs", mat.getSpecs()).ge("row_beg", startRow).le("row_end", endRow).eq("status", 1)); 
 | 
            if (null != locRule) { 
 | 
                break; 
 | 
            } 
 | 
            locRule = this.selectOne(new EntityWrapper<LocRule>().eq("model", mat.getModel()).ge("row_beg", startRow).le("row_end", endRow).eq("status", 1)); 
 | 
            if (null != locRule) { 
 | 
                break; 
 | 
            } 
 | 
            locRule = this.selectOne(new EntityWrapper<LocRule>().eq("batch", batch).ge("row_beg", startRow).le("row_end", endRow).eq("status", 1)); 
 | 
            if (null != locRule) { 
 | 
                break; 
 | 
            } 
 | 
        } while (false); 
 | 
        return locRule; 
 | 
    } 
 | 
} 
 |