| | |
| | | package com.zy.asrs.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import com.core.common.Cools; |
| | | import com.zy.asrs.entity.LocDetl; |
| | | import com.zy.asrs.entity.LocMast; |
| | | import com.zy.asrs.entity.result.StockVo; |
| | | import com.zy.asrs.mapper.LocDetlMapper; |
| | | import com.zy.asrs.service.LocDetlService; |
| | | import com.zy.asrs.service.LocMastService; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.common.model.QueryStockPreDo; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | | import java.util.*; |
| | | |
| | | @Service("locDetlService") |
| | | public class LocDetlServiceImpl extends ServiceImpl<LocDetlMapper, LocDetl> implements LocDetlService { |
| | | |
| | | @Autowired |
| | | private LocMastService locMastService; |
| | | |
| | | @Override |
| | | public Page<LocDetl> getStockOut(Page<LocDetl> page) { |
| | |
| | | @Override |
| | | public boolean updateAnfme(Double anfme, String locNo, String matnr, String batch) { |
| | | if (anfme <= 0) { |
| | | return delete(new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr", matnr)); |
| | | return this.baseMapper.deleteItem(locNo, matnr, batch) > 0; |
| | | } else { |
| | | int res = baseMapper.updateAnfme(anfme, locNo, matnr); |
| | | return res > 0; |
| | | return baseMapper.updateAnfme(anfme, locNo, matnr, batch, null, null) > 0; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public boolean updateAnfme(Double anfme, String locNo, String matnr, String batch, String manu, String memo) { |
| | | if (anfme <= 0) { |
| | | return this.baseMapper.deleteItem(locNo, matnr, batch) > 0; |
| | | } else { |
| | | return baseMapper.updateAnfme(anfme, locNo, matnr, batch, manu, memo) > 0; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public boolean updateLocNo(String newLocNo, String oldLocNo) { |
| | | return baseMapper.updateLocNo(newLocNo, oldLocNo) > 0; |
| | | } |
| | | |
| | | @Override |
| | | public List<String> getSameDetl(String matnr) { |
| | | return this.baseMapper.selectSameDetl(matnr); |
| | | } |
| | | |
| | | @Override |
| | |
| | | public Page<LocDetl> getStockStatis(Page<LocDetl> page) { |
| | | page.setRecords(baseMapper.getStockStatis(page.getCondition())); |
| | | page.setTotal(baseMapper.getStockStatisCount(page.getCondition())); |
| | | return page; |
| | | } |
| | | @Override |
| | | public Page<LocDetl> getStockStatis2(Page<LocDetl> page) { |
| | | page.setRecords(baseMapper.getStockStatis2(page.getCondition())); |
| | | page.setTotal(baseMapper.getStockStatisCount(page.getCondition())); |
| | | return page; |
| | | } |
| | | |
| | | @Override |
| | | public Page<LocDetl> getStockStatisOut(Page<LocDetl> page) { |
| | | page.setRecords(baseMapper.getStockStatisOut(page.getCondition())); |
| | | page.setTotal(baseMapper.getStockStatisOutCount(page.getCondition())); |
| | | return page; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<LocDetl> queryStock(String matnr, String batch, String orderNo) { |
| | | return this.baseMapper.queryStock(matnr, batch, orderNo); |
| | | public List<LocDetl> queryStock(String matnr, String batch, String orderNo, Set<String> locNos) { |
| | | List<LocDetl> result = new ArrayList<>(); |
| | | List<QueryStockPreDo> preDos = this.baseMapper.queryStockPre(matnr, batch); |
| | | for (QueryStockPreDo preDo : preDos) { |
| | | List<LocDetl> locDetls = this.baseMapper.queryStock(matnr, batch, preDo.getNo(), preDo.getOrderBy(), preDo.getBay()); |
| | | result.addAll(locDetls); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<StockVo> queryStockTotal() { |
| | | return this.baseMapper.queryStockTotal(); |
| | | } |
| | | |
| | | /** |
| | | * 获取库存总数 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Integer sum() { |
| | | |
| | | return this.baseMapper.sum(); |
| | | } |
| | | |
| | | @Override |
| | | public List<LocDetl> unreason() { |
| | | return this.baseMapper.unreason(); |
| | | } |
| | | |
| | | /** |
| | | * 通过物料代码获取库存总数量 |
| | | * @param matnr |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Double selectSumByMatnr(String matnr) { |
| | | Double aDouble = this.baseMapper.selectSumByMatnr(matnr); |
| | | if (aDouble == null) { |
| | | return 0.0; |
| | | }else { |
| | | return aDouble; |
| | | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public List<LocDetl> selectGroupPage(Map<String, Object> param, Integer curr, Integer limit) { |
| | | return this.baseMapper.selectGroupPage(param); |
| | | } |
| | | |
| | | @Override |
| | | public List<LocDetl> selectByLocNo(String locNo) { |
| | | return this.baseMapper.selectByLocNo(locNo); |
| | | } |
| | | |
| | | @Override |
| | | public List<LocDetl> selectByLocNosAndMatnr(List<String> locNos, String matnr) { |
| | | return this.baseMapper.selectByLocNosAndMatnr(locNos, matnr); |
| | | } |
| | | |
| | | @Override |
| | | public LocDetl selectItem(String locNo, String matnr, String batch) { |
| | | return this.baseMapper.selectItem(locNo, matnr, batch); |
| | | } |
| | | |
| | | @Override |
| | | public List<LocDetl> searchByLike(String orderNo, String matnr, String maktx, String specs, String locNo) { |
| | | if (Cools.isEmpty(orderNo) && Cools.isEmpty(matnr) && Cools.isEmpty(maktx) && Cools.isEmpty(specs) && Cools.isEmpty(locNo)) { |
| | | return new ArrayList<LocDetl>(); |
| | | } |
| | | return this.baseMapper.searchByLike(orderNo, matnr, maktx, specs, locNo); |
| | | } |
| | | |
| | | @Override |
| | | public List<LocDetl> findHighAreaByMatnr(String matnr) { |
| | | return this.baseMapper.findAreaByMatnr(matnr, 2); |
| | | } |
| | | |
| | | @Override |
| | | public List<LocDetl> findSingleAreaByMatnr(String matnr) { |
| | | ArrayList<LocDetl> list = new ArrayList<>(); |
| | | List<LocDetl> locDetls = this.baseMapper.findAreaByMatnr(matnr, 1); |
| | | |
| | | //将查出来的数据进行排序。1-3,8-11,15-18row需要颠倒顺序 |
| | | for (LocDetl locDetl : locDetls) { |
| | | if (list.contains(locDetl)) { |
| | | continue; |
| | | } |
| | | |
| | | String locNo = locDetl.getLocNo(); |
| | | List<String> outerSingleLoc = Utils.getGroupLoc(locNo); |
| | | List<LocMast> locMasts = locMastService.selectByLocNos(outerSingleLoc); |
| | | int locRow = Utils.getRow(locNo); |
| | | if (locRow >= 1 && locRow <= 3 |
| | | || locRow >= 8 && locRow <= 11 |
| | | || locRow >= 15 && locRow <= 18) { |
| | | Collections.reverse(locMasts); |
| | | } |
| | | |
| | | for (LocMast locMast : locMasts) { |
| | | if (!locMast.getLocSts().equals("F")) { |
| | | continue; |
| | | } |
| | | |
| | | if (locMast.getLocType2() != 1) { |
| | | continue; |
| | | } |
| | | |
| | | for (LocDetl detl : this.baseMapper.selectByLocNo(locMast.getLocNo())) { |
| | | if (detl.getMatnr().equals(locDetl.getMatnr())) { |
| | | if (!list.contains(detl)) { |
| | | list.add(detl); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | | public List<LocDetl> findLowAreaByMatnr(String matnr) { |
| | | return this.baseMapper.findAreaByMatnr(matnr, 3); |
| | | } |
| | | } |