|  |  | 
 |  |  | package com.zy.asrs.service.impl; | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.zy.asrs.mapper.OrderDetlMapper; | 
 |  |  | import com.zy.asrs.entity.OrderDetl; | 
 |  |  | import com.zy.asrs.service.OrderDetlService; | 
 |  |  | 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; | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public OrderDetl selectItem(Long orderId, String matnr, String batch) { | 
 |  |  |         return this.baseMapper.selectItem(orderId, matnr, batch); | 
 |  |  |     public Page<OrderDetl> getPakoutPage(Page<OrderDetl> page) { | 
 |  |  |         page.setRecords(baseMapper.getPakoutPage(page.getCondition())); | 
 |  |  |         page.setTotal(baseMapper.getPakoutPageCount(page.getCondition())); | 
 |  |  |         return page; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public OrderDetl selectItem(String orderNo, String matnr, String batch) { | 
 |  |  |         return this.baseMapper.selectItemByOrderNo(orderNo, matnr, batch); | 
 |  |  |     public List<OrderDetl> selectItem(String orderNo) { | 
 |  |  |         return this.baseMapper.listByOrderNo(orderNo); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | //    @Override | 
 |  |  | //    public OrderDetl selectItem(Long orderId, String matnr, String batch, Double qty) { | 
 |  |  | //        List<OrderDetl> 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<OrderDetl> 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<OrderDetl> 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<OrderDetl> orderDetls, Long orderId, String matnr, String batch) { | 
 |  |  |         for (OrderDetl orderDetl : orderDetls) { | 
 |  |  |             if (orderDetl.getOrderId().equals(orderId) && orderDetl.getMatnr().equals(matnr)) { | 
 |  |  |                 if (!Cools.isEmpty(batch)) { | 
 |  |  |                     if (orderDetl.getBatch().equals(batch)) { | 
 |  |  |                         return orderDetl; | 
 |  |  |                     } | 
 |  |  |                 } else { | 
 |  |  |                 if (Cools.eq(batch, orderDetl.getBatch())) { | 
 |  |  |                     return orderDetl; | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  | 
 |  |  |     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<OrderDetl> 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<OrderDetl> detlList = selectItem(waitPakin.getOrderNo()); | 
 |  |  |         for (OrderDetl orderDetl : detlList) { | 
 |  |  |             if (MatCompareUtils.compare(orderDetl, waitPakin)) { | 
 |  |  |                 Double workQty = orderDetl.getWorkQty(); | 
 |  |  |                 //防止减成负数 | 
 |  |  |                 if (workQty - qty <= 0) { | 
 |  |  |                     qty = workQty; | 
 |  |  |                 } | 
 |  |  |                 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<OrderDetl> 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<OrderDetl> 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<OrderDetl> 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<OrderDetl> 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; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  | } |