自动化立体仓库 - WMS系统
zhang
5 天以前 4a2703db125e67a4a9590b55a2b7fa857e87ef45
src/main/java/com/zy/asrs/controller/OutController.java
@@ -13,6 +13,7 @@
import com.zy.common.model.OrderMergeVo;
import com.zy.common.model.TaskDto;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@@ -23,7 +24,7 @@
/**
 * Created by vincent on 2022/3/26
 */
@Slf4j
@RestController
public class OutController extends BaseController {
@@ -116,7 +117,7 @@
    @ManagerAuth(memo = "订单出库")
    @Transactional
    public synchronized R pakout(@RequestBody List<LocDto> locDtos) throws InterruptedException {
        log.info("订单出库:{}", locDtos);
        //判断是否可以生成出库工作档
        boolean lack = true;
        for (LocDto locDto : locDtos) {
@@ -163,7 +164,9 @@
    @RequestMapping(value = "/order/merge/preview/auth")
    @ManagerAuth
    public R mergePreview(@RequestParam(value = "orderIds[]") List<Long> orderIds){
        return R.ok().add(orderService.mergePreview(orderIds));
        List<OrderMergeVo> orderMergeVos = orderService.mergePreview(orderIds);
        log.info("合并出库汇总locDtoList:{}", orderMergeVos);
        return R.ok().add(orderMergeVos);
    }
    @PostMapping("/out/pakout/preview/merge/auth")
@@ -190,47 +193,9 @@
            }
        }
        log.info("合并出库预览locDtoList:{}", locDtoList);
        return R.ok().add(locDtoList);
        /*
        if (Cools.isEmpty(list)) {
            return R.parse(BaseRes.PARAM);
        }
        Set<String> exist = new HashSet<>();
        List<LocDto> locDtos = new ArrayList<>();
        for (OrderMergeVo vo : list) {
            double issued = Optional.of(vo.getAnfme()).orElse(0.0D);
            if (issued <= 0.0D) { continue; }
            List<LocDetl> locDetls = locDetlService.queryStock(vo.getMatnr(), vo.getBatch(), null, exist);
            for (LocDetl locDetl : locDetls) {
                if (issued > 0) {
                    LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), JSON.toJSONString(vo.getOrderDtos()),
                            issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
                    int ioType = (issued >= locDetl.getAnfme() && locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locDto.getLocNo())) == 1) ? 101 : 103;
                    List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ioType);
                    locDto.setStaNos(staNos);
                    locDtos.add(locDto);
                    exist.add(locDetl.getLocNo());
                    // 剩余待出数量递减
                    issued = issued - locDetl.getAnfme();
                } else {
                    break;
                }
            }
            if (issued > 0) {
                LocDto locDto = new LocDto(null, vo.getMatnr(), vo.getMaktx(), vo.getBatch(), JSON.toJSONString(vo.getOrderDtos()), issued);
                locDto.setLack(Boolean.TRUE);
                locDtos.add(locDto);
            }
        }
        for (LocDto locDto : locDtos) {
            Mat mat = matService.selectByMatnr(locDto.getMatnr());
            assert mat != null;
            locDto.setSpecs(mat.getSpecs());
        }
        return R.ok().add(locDtos);*/
    }
@@ -246,9 +211,9 @@
                //平库
                if("无需站点".equals(locDto.getAgvStaNo())){
                    generateManPakout(locDto);
                }else {
                    generateTaskDtoForAgv(locDto,agvTaskDtos);
                }
                generateTaskDtoForAgv(locDto,agvTaskDtos);
                //四项库
            }else{
                generateTaskDtoForBase(locDto,taskDtos);
@@ -275,24 +240,6 @@
        } else {
            agvTaskDtos.add(taskDto);
        }
//        //寻找空站点位置
//        AgvBasDevp agvBasDevp = agvBasDevpService.selectEmptyDevpByStation(locDto.getAgvStaNo());
//        if(Cools.isEmpty(agvBasDevp)){
//            //如果没有找到空站点,则生成准备任务
//            //TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getAgvStaNo(), locDto);
//            //agvTaskDtos.add(taskDto);
//            //如果库位存在混载
//
//            return;
//        }
////        agvBasDevp.setLocSts("S");
////        agvBasDevpService.updateById(agvBasDevp);
//        agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvBasDevp.getDevNo(),"S",null);
//        //TaskDto taskDto = new TaskDto(locDto.getLocNo(), agvBasDevp.getDevNo(), locDto);
//        taskDto.setAgvStaNo(agvBasDevp.getDevNo());
        //agvTaskDtos.add(taskDto);
    }