.
18516761980
2022-03-28 58bccbc9d1a23c8184217317a9a37345d98883c2
src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
@@ -14,13 +14,16 @@
import zy.cloud.wms.common.model.MatnrDto;
import zy.cloud.wms.common.model.OrderStoDto;
import zy.cloud.wms.common.model.ReceiveStoDto;
import zy.cloud.wms.common.model.WaveStoDto;
import zy.cloud.wms.common.service.MainService;
import zy.cloud.wms.common.utils.VersionUtils;
import zy.cloud.wms.manager.entity.*;
import zy.cloud.wms.manager.entity.param.*;
import zy.cloud.wms.manager.entity.result.StoPrintVo;
import zy.cloud.wms.manager.service.*;
import zy.cloud.wms.manager.utils.AddZero;
import java.text.SimpleDateFormat;
import java.util.*;
/**
@@ -62,6 +65,10 @@
    private ReceiveDetlService receiveDetlService;
    @Autowired
    ReceiveLogService receiveLogService;
    @Autowired
    private WaveService waveService;
    @Autowired
    private WaveDetlService waveDetlService;
    @Override
@@ -583,22 +590,44 @@
        }
        return R.ok("拣货单已取消");
    }
    @Override
    @Transactional
     public R  initReceive(InitOrderParam param, Long userId, Long hostId){
        Receive order_no = receiveService.selectOne(new EntityWrapper<Receive>()
                .eq("order_no", param.getOrderNo()));
        if (order_no != null) {
            return R.error("抱歉单号已存在,请修改单号");
        String orderNo = "";
        if(!Cools.isEmpty(param.getOrderNo())) {
            Receive receive = receiveService.selectOne(new EntityWrapper<Receive>()
                    .eq("order_no", param.getOrderNo()));
            if (receive != null) {
                return R.error("抱歉单号已存在,请修改单号");
            }
            orderNo = param.getOrderNo();
        } else {
            String sheetNo = "STO-" + new SimpleDateFormat("yyyyMMdd").format(new Date()) + "-";
            String currNum = receiveService.getCurrNum(sheetNo);
            if (!Cools.isEmpty(currNum)) {
                String[] split = currNum.split("-");
                if (split.length < 3) {
                    orderNo = sheetNo + "0001";
                } else {
                    Integer newNum = Integer.parseInt(split[2]) + 1;
                    String format = AddZero.addZeroForNum(newNum + "", 4);
                    orderNo = sheetNo + format;
                }
            } else {
                orderNo = sheetNo + "0001";
            }
        }
        Date now = new Date();
        Item item = itemService.selectByName(param.getItem());
        Cstmr cstmr = cstmrService.selectByName(param.getCstmr());
        // 新增订单表头
        order_no = new Receive(
        Receive order_no = new Receive(
                hostId,
                String.valueOf(snowflakeIdWorker.nextId()),    // 编号[非空]
                param.getOrderNo(),    // 订单编号
                orderNo,        // 订单编号
//                param.getOrderNo(),    // 订单编号
                param.getOrderTime(),    // 单据日期
                param.getDocType(),    // 单据类型
                item==null?null:item.getId(),    // 项目编号
@@ -646,6 +675,8 @@
            ReceiveDetl receiveDetl = new ReceiveDetl();
            receiveDetl.setHostId(hostId);
            receiveDetl.setOrderId(order_no.getId());
            receiveDetl.setOrderNo(orderNo);
//            receiveDetl.setOrderNo(param.getOrderNo());
            receiveDetl.setAnfme(dto.getCount());
            receiveDetl.setCreateTime(now);
            receiveDetl.setCreateBy(userId);
@@ -674,12 +705,30 @@
    @Override
    @Transactional
    public R initOrder(InitOrderParam param, Long userId, Long hostId) {
       // Receive order_no = receiveService.selectOne(new EntityWrapper<Receive>()
        //        .eq("order_no", param.getOrderNo()));
        Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId);
        if (order != null) {
            return R.error("抱歉单号已存在,请修改单号");
        String orderNo = "";
        if(!Cools.isEmpty(param.getOrderNo())) {
            Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId);
            if (order != null) {
                return R.error("抱歉单号已存在,请修改单号");
            }
            orderNo = param.getOrderNo();
        } else {
            String sheetNo = "ORD-" + new SimpleDateFormat("yyyyMMdd").format(new Date()) + "-";
            String currNum = receiveService.getCurrNum(sheetNo);
            if (!Cools.isEmpty(currNum)) {
                String[] split = currNum.split("-");
                if (split.length < 3) {
                    orderNo = sheetNo + "0001";
                } else {
                    Integer newNum = Integer.parseInt(split[2]) + 1;
                    String format = AddZero.addZeroForNum(newNum + "", 4);
                    orderNo = sheetNo + format;
                }
            } else {
                orderNo = sheetNo + "0001";
            }
        }
        Date now = new Date();
        Item item = itemService.selectByName(param.getItem());
        Cstmr cstmr = cstmrService.selectByName(param.getCstmr());
@@ -687,7 +736,7 @@
        Order order1 = new Order();
        order1.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
        order1.setHostId(hostId);
        order1.setOrderNo(param.getOrderNo());
        order1.setOrderNo(orderNo);
        order1.setOrderTime(param.getOrderTime());
        order1.setDocType(param.getDocType());
        order1.setItemId(item == null? null : item.getId());
@@ -775,6 +824,7 @@
            OrderDetl orderDetl = new OrderDetl();
            orderDetl.setHostId(hostId);
            orderDetl.setOrderId(order1.getId());
            orderDetl.setOrderNo(order1.getOrderNo());
            orderDetl.setAnfme(dto.getCount());
            orderDetl.setCreateTime(now);
            orderDetl.setCreateBy(userId);
@@ -1093,4 +1143,36 @@
        return R.ok("创建订单成功");
    }
    @Override
    public R wavePreview(StockOutParam stockOutParam, Long userId, Long hostId) {
        Wrapper<Wave> wrapper = new EntityWrapper<Wave>()
                .eq("id", stockOutParam.getOrderNo());
        if (hostId != null) {
            wrapper.eq("host_id", hostId);
        }
        Wave wave = waveService.selectOne(wrapper);
        if (wave.getStatus() != 0){
            return R.error("此单据无法生成拣货单");
        }
//        Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId);
//        if (order.getSettle() != 1) {
//            return R.error("此单据无法生成拣货单");
//        }
        List<WaveDetl> waveDetls = waveDetlService.selectList(new EntityWrapper<WaveDetl>()
                .eq("wave_id", stockOutParam.getOrderNo()));
        if (Cools.isEmpty(waveDetls)) {
            return R.error("此单据已失效,请联系管理员");
        }
//        List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order.getOrderNo(), hostId);
//        if (Cools.isEmpty(orderDetls)) {
//            return R.error("此单据已失效,请联系管理员");
//        }
        WaveStoDto waveStoDto = new WaveStoDto().create(stockOutParam.getOrderNo(),waveDetls);
//        OrderStoDto dto = new OrderStoDto().create(order.getOrderNo(), orderDetls);
        return R.ok().add(mainService.waveOutPreview(waveStoDto, hostId));
    }
}