| | |
| | | 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.core.common.DateUtils; |
| | | import com.core.common.SnowflakeIdWorker; |
| | |
| | | import com.zy.asrs.mapper.OrderDetlMapper; |
| | | import com.zy.asrs.mapper.OrderMapper; |
| | | import com.zy.asrs.service.*; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import com.zy.common.model.DetlDto; |
| | | import com.zy.common.model.OrderDto; |
| | | import com.zy.common.model.OrderMergeVo; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | private DocTypeService docTypeService; |
| | | @Autowired |
| | | private WrkDetlService wrkDetlService; |
| | | @Autowired |
| | | private MatService matService; |
| | | |
| | | @Override |
| | | public Order selectByNo(String orderNo) { |
| | |
| | | break; |
| | | } |
| | | } |
| | | if (complete) { |
| | | if (complete && wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no", orderNo)) == 0) { |
| | | // 出库订单重新整理明细 |
| | | DocType docType = docTypeService.selectById(order.getDocType()); |
| | | if (null != docType && docType.getPakout() == 1) { |
| | |
| | | throw new CoolException("修改单据明细数量失败"); |
| | | } |
| | | } |
| | | // 工作档明细更新单据编号 |
| | | for (WrkDetl wrkDetl : wrkDetls) { |
| | | wrkDetlService.updateOrderNo(orderNo, wrkDetl.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("", e); |
| | | return false; |
| | |
| | | return this.baseMapper.selectComplete(); |
| | | } |
| | | |
| | | @Override |
| | | public List<OrderMergeVo> mergePreview(List<Long> ids) { |
| | | List<OrderMergeVo> result = new ArrayList<>(); |
| | | for (Long orderId : ids) { |
| | | Order order = this.selectById(orderId); |
| | | // 获取所有未作业的明细 |
| | | List<OrderDetl> orderDetls = orderDetlService.selectRemainder(orderId); |
| | | for (OrderDetl orderDetl : orderDetls) { |
| | | Double leave = orderDetl.getAnfme() - orderDetl.getQty(); |
| | | OrderMergeVo vo = new OrderMergeVo(orderDetl.getMatnr(), orderDetl.getBatch(), leave); |
| | | OrderDto orderDto = new OrderDto(orderDetl.getOrderNo(), null, leave); |
| | | if (OrderMergeVo.has(result, vo)) { |
| | | OrderMergeVo exist = OrderMergeVo.find(result, vo.getMatnr(), vo.getBatch()); |
| | | assert exist != null; |
| | | exist.setAnfme(exist.getAnfme() + vo.getAnfme()); |
| | | exist.getOrderDtos().add(orderDto); |
| | | } else { |
| | | vo.getOrderDtos().add(orderDto); |
| | | result.add(vo); |
| | | } |
| | | |
| | | } |
| | | } |
| | | for (OrderMergeVo vo : result) { |
| | | Mat mat = matService.selectByMatnr(vo.getMatnr()); |
| | | assert mat != null; |
| | | vo.setMaktx(mat.getMaktx()); |
| | | vo.setSpecs(mat.getSpecs()); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | } |