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.OrderDetl; import com.zy.asrs.entity.WaitPakin; import com.zy.asrs.entity.WrkDetl; import com.zy.asrs.mapper.OrderDetlMapper; import com.zy.asrs.service.OrderDetlService; import com.zy.asrs.utils.MatCompareUtils; import com.zy.common.model.LocDto; import org.springframework.stereotype.Service; import java.util.List; @Service("orderDetlService") public class OrderDetlServiceImpl extends ServiceImpl implements OrderDetlService { @Override public List selectByOrderId(Long orderId) { return this.selectList(new EntityWrapper().eq("order_id", orderId)); } @Override public Page getPakoutPage(Page page) { page.setRecords(baseMapper.getPakoutPage(page.getCondition())); page.setTotal(baseMapper.getPakoutPageCount(page.getCondition())); return page; } @Override public List selectItem(String orderNo) { return this.baseMapper.listByOrderNo(orderNo); } // @Override // public OrderDetl selectItem(Long orderId, String matnr, String batch, Double qty) { // List detlList = this.baseMapper.selectItem(orderId, matnr, batch); // if (detlList == null || detlList.isEmpty()) { // return null; // } else if (detlList.size() == 1) { // return detlList.get(0); // } else { // if (qty != null) { // for (OrderDetl orderDetl : detlList) { // if (qty.equals(orderDetl.getAnfme())) { // return orderDetl; // } // } // } // return detlList.get(0); // } // } // // @Override // public OrderDetl selectQtyItem(String orderNo, String matnr, String batch, Double qty) { // List detlList = this.baseMapper.selectItemByOrderNo(orderNo, matnr, batch); // if (detlList == null || detlList.isEmpty()) { // return null; // } else if (detlList.size() == 1) { // return detlList.get(0); // } else { // if (qty != null) { // for (OrderDetl orderDetl : detlList) { // if (!orderDetl.getQty().equals(orderDetl.getWorkQty()) && qty.equals(orderDetl.getAnfme())) { // return orderDetl; // } // } // } // return detlList.get(0); // } // } // // @Override // public OrderDetl selectItem(String orderNo, String matnr, String batch, Double qty) { // List detlList = this.baseMapper.selectItemByOrderNo(orderNo, matnr, batch); // if (detlList == null || detlList.isEmpty()) { // return null; // } else if (detlList.size() == 1) { // return detlList.get(0); // } else { // if (qty != null) { // for (OrderDetl orderDetl : detlList) { // if (qty.equals(orderDetl.getAnfme())) { // return orderDetl; // } // } // } // return detlList.get(0); // } // } @Override public OrderDetl findByLook(List orderDetls, Long orderId, String matnr, String batch) { for (OrderDetl orderDetl : orderDetls) { if (orderDetl.getOrderId().equals(orderId) && orderDetl.getMatnr().equals(matnr)) { if (Cools.eq(batch, orderDetl.getBatch())) { return orderDetl; } } } return null; } @Override public boolean increase(Long orderId, String matnr, String batch, Double qty) { return this.baseMapper.increase(orderId, matnr, batch, qty) > 0; } // @Override // public boolean decrease(String orderNo, String matnr, String batch, Double qty) { // int decrease = this.baseMapper.decrease(orderNo, matnr, batch, qty); // if (decrease == 0) { // return this.baseMapper.decrease(orderNo, matnr, null, qty) > 0; // } else { // return true; // } // } @Override public boolean decrease(WrkDetl wrkDetl, Double qty) { List detlList = selectItem(wrkDetl.getOrderNo()); for (OrderDetl orderDetl : detlList) { if (MatCompareUtils.compare(orderDetl, wrkDetl)) { int decrease = this.baseMapper.decrease2(orderDetl.getId(), qty); if (decrease == 0) { return false; } else { return true; } } } return false; } @Override public boolean decrease(WaitPakin waitPakin, Double qty) { List detlList = selectItem(waitPakin.getOrderNo()); for (OrderDetl orderDetl : detlList) { if (MatCompareUtils.compare(orderDetl, waitPakin)) { int decrease = this.baseMapper.decrease2(orderDetl.getId(), qty); if (decrease == 0) { return false; } else { return true; } } } return false; } @Override public boolean modifyStatus(Long orderId, Integer status) { return this.baseMapper.modifyStatus(orderId, status) > 0; } @Override public boolean addToLogTable(OrderDetl orderDetl) { return this.baseMapper.addToLogTable(orderDetl) > 0; } // @Override // public boolean increaseQtyByOrderNo(String orderNo, String matnr, String batch, Double qty) { // return this.baseMapper.increaseQtyByOrderNo(orderNo, matnr, batch, qty) > 0; // } @Override public boolean increaseQtyByOrderNo(String orderNo, WrkDetl wrkDetl, Double qty) { List detlList = this.baseMapper.listByOrderNo(orderNo); if (detlList == null || detlList.isEmpty()){ return false; } for (OrderDetl orderDetl : detlList){ if (MatCompareUtils.compare(orderDetl, wrkDetl)){ return this.baseMapper.increaseQtyById(orderDetl.getId(), qty) > 0; } } return false; } /** * 入出库任务生成时,更新单据表中作业数量 * * @param orderDetl * @param workQty * @return */ @Override public boolean increaseWorkQty(OrderDetl orderDetl, Double workQty) { return this.baseMapper.increaseWorkQty(orderDetl.getId(), workQty) > 0; } @Override public OrderDetl selectItem(WaitPakin waitPakin) { List detlList = this.baseMapper.selectItemByOrderNo(waitPakin.getOrderNo(), waitPakin.getMatnr(), waitPakin.getBatch()); if (detlList == null || detlList.isEmpty()) { return null; } else if (detlList.size() == 1) { return detlList.get(0); } else { for (OrderDetl orderDetl : detlList) { if (MatCompareUtils.compare(waitPakin, orderDetl)) { return orderDetl; } } return null; } } @Override public OrderDetl selectItem(LocDto locDto) { List detlList = this.baseMapper.selectItemByOrderNo(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); if (detlList == null || detlList.isEmpty()) { return null; } else if (detlList.size() == 1) { return detlList.get(0); } else { for (OrderDetl orderDetl : detlList) { if (MatCompareUtils.compare(locDto, orderDetl)) { return orderDetl; } } return null; } } @Override public OrderDetl selectItem(WrkDetl wrkDetl) { List detlList = this.baseMapper.selectItemByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); if (detlList == null || detlList.isEmpty()) { return null; } else if (detlList.size() == 1) { return detlList.get(0); } else { for (OrderDetl orderDetl : detlList) { if (MatCompareUtils.compare(wrkDetl, orderDetl)) { return orderDetl; } } return null; } } }