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.WrkMast; import com.zy.asrs.entity.result.FindLocNoAttributeVo; import com.zy.asrs.mapper.WrkMastLogMapper; import com.zy.asrs.mapper.WrkMastMapper; import com.zy.asrs.service.WrkMastService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashSet; import java.util.List; import java.util.Set; @Slf4j @Service("wrkMastService") public class WrkMastServiceImpl extends ServiceImpl implements WrkMastService { @Autowired private WrkMastLogMapper wrkMastLogMapper; @Override public int getWorkingMast(Integer devpNo) { return selectCount(new EntityWrapper().eq("source_sta_no", devpNo).in("wrk_sts", 1, 6)); } @Override public List selectToBeCompleteData() { return this.baseMapper.selectToBeCompleteData(); } @Override public List selectToBeHistoryData() { return this.baseMapper.selectToBeHistoryData(); } @Override public WrkMast selectByBarcode(String barcode) { List wrkMasts = this.selectList(new EntityWrapper().eq("barcode", barcode)); if (Cools.isEmpty(wrkMasts)) { return null; } return wrkMasts.get(0); } @Override public int getStoreCount(Integer crnNo) { return selectCount(new EntityWrapper().eq("crn_no", crnNo) .last(" and (wrk_sts in (1,2) or (wrk_sts=3 and wrk_no in (select wrk_no from asr_bas_devp)))")); } @Override public int selectWrkMastBareBoardStaNo(Integer ioType,Integer staNo) { return this.baseMapper.selectWrkMastBareBoardStaNo(ioType,staNo); } @Override public List selectWrkMastWrkDetl(Integer ioType, FindLocNoAttributeVo findLocNoAttributeVo, Integer crnNo) { return this.baseMapper.selectWrkMastWrkDetl(ioType,findLocNoAttributeVo.getMatnr(),findLocNoAttributeVo.getBatch(),findLocNoAttributeVo.getBrand() ,findLocNoAttributeVo.getStandby1(),findLocNoAttributeVo.getStandby2(),findLocNoAttributeVo.getStandby3() ,findLocNoAttributeVo.getBoxType1(),findLocNoAttributeVo.getBoxType2(),findLocNoAttributeVo.getBoxType3() ,crnNo); } @Override public WrkMast selectWrkMast(Integer workNo, String barcode) { return this.baseMapper.selectWrkMast(workNo, barcode); } @Override public int outboundSeqMaxContiguousPlt(String userNo) { List fromMast = baseMapper.listOutboundPltTypesByUserNo(userNo); List fromLog = wrkMastLogMapper.listOutboundPltTypesByUserNo(userNo); Set filled = new HashSet<>(); addPositivePlt(fromMast, filled); addPositivePlt(fromLog, filled); int h = 0; while (filled.contains(h + 1)) { h++; } return h; } private static void addPositivePlt(List list, Set target) { if (list == null) { return; } for (Integer p : list) { if (p != null && p > 0) { target.add(p); } } } }