自动化立体仓库 - WMS系统
src/main/java/com/zy/asrs/controller/OutController.java
@@ -1,16 +1,20 @@
package com.zy.asrs.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.R;
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.entity.param.OutlocDetlParam;
import com.zy.asrs.service.*;
import com.zy.common.model.LocDto;
import com.zy.common.model.TaskDto;
import com.zy.common.web.BaseController;
import lombok.Synchronized;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -159,13 +163,15 @@
                locDtos.add(locDto);
                exist.add(locDetl.getLocNo());
            }
            orderDetl.setUpdateBy(getUserId());
        }
        return R.ok().add(locDtos);
    }
    @Synchronized
    @PostMapping("/out/pakout2/auth")
    @ManagerAuth(memo = "订单出库")
    public synchronized R pakout2(@RequestBody List<LocDto> locDtos) throws InterruptedException {
    public R pakout2(@RequestBody List<LocDto> locDtos) throws InterruptedException {
        if (Cools.isEmpty(locDtos)) {
            return R.parse(BaseRes.PARAM);
        }
@@ -197,11 +203,24 @@
            } else {
                taskDtos.add(taskDto);
            }
            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDto.getLocNo()));
            if(!locMast.getLocSts().equals("F")) {
                return R.error("库位="+locMast.getLocNo()+"不是在库状态,请刷新页面重新提取物料");
            }
        }
        // -----------------------------------------------------------------------------------------------
        for (TaskDto taskDto : taskDtos) {
            workService.stockOutCheckAnfme(null, taskDto, getUser(), taskDto.getStaNo());
        }
        //对出库订单流水号进行更新
        Order order = orderService.selectByNo(locDtos.get(0).getOrderNo());
        if(order.getDocType()==81){
            order.setAccountDay(Cools.isEmpty(order.getAccountDay()) ? 1 : order.getAccountDay()+1);
            order.setUpdateTime(new Date());
            orderService.updateById(order);
        }
        return R.ok();
    }
@@ -221,7 +240,6 @@
        double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
        for (LocDetl locDetl : map.getList()) {
            if (issued > 0) {
                LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
                        locDetl.getAnfme());
                List<String> staNos =  new ArrayList<>();
@@ -233,9 +251,6 @@
                exist.add(locDetl.getLocNo());
                // 剩余待出数量递减
                issued = issued - locDetl.getAnfme();
            } else {
                break;
            }
        }
        if (issued > 0) {
            LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);