New file |
| | |
| | | package com.zy.asrs.task.handler; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.LocDetl; |
| | | import com.zy.asrs.entity.LocMast; |
| | | import com.zy.asrs.entity.Order; |
| | | import com.zy.asrs.entity.OrderDetl; |
| | | import com.zy.asrs.service.LocDetlService; |
| | | import com.zy.asrs.service.LocMastService; |
| | | import com.zy.asrs.service.OrderDetlService; |
| | | import com.zy.asrs.service.WorkService; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.HashSet; |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | |
| | | @Service |
| | | public class AutoReplenishmentHandler extends AbstractHandler<String> { |
| | | |
| | | @Autowired |
| | | private OrderDetlService orderDetlService; |
| | | @Autowired |
| | | private LocDetlService locDetlService; |
| | | @Autowired |
| | | private LocMastService locMastService; |
| | | @Autowired |
| | | private WorkService workService; |
| | | |
| | | @Transactional |
| | | public ReturnT<String> start(Order order) { |
| | | |
| | | Set<String> locNos = pakoutLoc(order); |
| | | for (String locNo : locNos){ |
| | | LocMast locMast = locMastService.selectByLoc(locNo); |
| | | if(!"F".equals(locMast.getLocSts())){ |
| | | throw new CoolException("库位状态已变更"); |
| | | } |
| | | //生成工作档 |
| | | |
| | | //生成工作档明细 |
| | | //修改库位状态 |
| | | } |
| | | |
| | | |
| | | return SUCCESS; |
| | | } |
| | | |
| | | private Set<String> pakoutLoc(Order order){ |
| | | //需要出库的库位 |
| | | Set<String> locNos = new HashSet<>(); |
| | | //根据订单生成四项库出库工作档 |
| | | List<OrderDetl> orderDetlList = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", order.getOrderNo())); |
| | | orderDetlList.forEach(orderDetl -> { |
| | | String matnr = orderDetl.getMatnr(); |
| | | Double orderAnfme = orderDetl.getAnfme(); |
| | | |
| | | List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>() |
| | | .eq("matnr", matnr) |
| | | .eq("loc_sts","F") |
| | | .groupBy("loc_no")); |
| | | for (LocDetl locDetl : locDetls){ |
| | | String locNo = locDetl.getLocNo(); |
| | | //订单待出数量减去库存数量 |
| | | orderAnfme -= locDetl.getAnfme(); |
| | | //添加待出库库位 |
| | | locNos.add(locNo); |
| | | |
| | | if(orderAnfme <= 0){ |
| | | orderDetl.setQty(orderDetl.getAnfme() - orderAnfme); |
| | | orderDetlService.updateById(orderDetl); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | }); |
| | | |
| | | return locNos; |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | for (int i=0; i<10; i++){ |
| | | for (int y=0; y<10; y++){ |
| | | System.out.println(i); |
| | | System.out.println(y); |
| | | if(y == 5){ |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | } |