pjb
2025-03-13 19e6e3559842d23fc5bd4f28a688dd8c2c747d4b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package com.zy.asrs.wms.apis.wcs.services.Impl;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.mysql.cj.util.StringUtils;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.apis.wcs.entity.domain.WaveTaskDetl;
import com.zy.asrs.wms.apis.wcs.entity.response.SowSeeds;
import com.zy.asrs.wms.apis.wcs.services.WaveManagentService;
import com.zy.asrs.wms.asrs.entity.*;
import com.zy.asrs.wms.asrs.entity.dto.LargeScreenTaskDto;
import com.zy.asrs.wms.asrs.entity.enums.OrderPickStatus;
import com.zy.asrs.wms.asrs.entity.enums.TaskStsType;
import com.zy.asrs.wms.asrs.entity.param.WaveSeedReviewParam;
import com.zy.asrs.wms.asrs.mapper.*;
import com.zy.asrs.wms.asrs.service.TaskService;
import com.zy.asrs.wms.asrs.service.WaveSeedService;
import org.aspectj.weaver.ast.Or;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
 
@Service
public class WaveManagentServiceImpl implements WaveManagentService {
    @Autowired
    private WaveSeedService waveSeedService;
 
    @Autowired
    private TaskService taskService;
    @Autowired
    private TaskMapper taskMapper;
 
    @Autowired
    private TaskTypeMapper taskTypeMapper;
    @Autowired
    private OrderMapper orderMapper;
    @Autowired
    private OrderDetlMapper orderDetlMapper;
    @Autowired
    private CacheSiteMapper cacheSiteMapper;
 
    @Override
    public R getSowSeeds() {
        List<SowSeeds> waveSeeds = waveSeedService.selectSeedsList();
        return R.ok(waveSeeds);
    }
 
    @Override
    public R reviewSeeds(WaveSeedReviewParam reviewParam) {
         waveSeedService.waveSeedReview(reviewParam);
         return R.ok("播种复核成功");
    }
 
    @Override
    public int removeSowSeed(Long id) {
        if (id == null) {
            throw new CoolException("播种ID不能为空!!");
        }
        return waveSeedService.removeSowById(id);
 
    }
 
    @Override
    public R getTask() {
         List<LargeScreenTaskDto> taskDtos =  taskMapper.getTaskIntegrateByTaskNo(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id).orderByAsc(Task::getUpdateTime).last("limit 1"));
 
         return R.ok(taskDtos);
    }
 
    @Override
    public R getTaskDetl(String taskNo) {
        List<WaveTaskDetl> taskDetls = taskMapper.getTaskDetlByTaskNo(taskNo);
        return R.ok(taskDetls);
    }
 
    /**
     * 获取非汇总明细数据
     * @param taskNo
     * @return
     */
    @Override
    public R getTaskDetlQutify(String taskNo) {
        List<WaveTaskDetl> taskDetls = taskMapper.getTaskDetlQutify(taskNo);
        return R.ok(taskDetls);
    }
 
    /**
     * 获取波次下所有订单
     * @param waveNo
     * @return
     */
    @Override
    public R getAllOrders(String waveNo) {
        if (StringUtils.isNullOrEmpty(waveNo)) {
            throw new CoolException("波次编码不能为空!!");
        }
        List<Order> orders = orderMapper.selectList(new LambdaQueryWrapper<Order>().eq(Order::getWaveNo, waveNo));
        if (orders.isEmpty()) {
            throw new CoolException("当前波次下没有订单!!");
        }
 
        orders.forEach(order -> {
            if (order.getPickStatus() == OrderPickStatus.ORDER_PICK_STATUS_DONE.val) {
                order.setOrderStatus("已完成");//已完成
            } else if (order.getPickStatus() == OrderPickStatus.ORDER_PICK_STATUS_SECTION.val) {//部分完成
                order.setOrderStatus("部分完成");
            } else {//未完成
                order.setOrderStatus("未完成");
            }
        });
 
        return R.ok(orders);
    }
 
    /**
     * 获了当前播种墙库位信息
     * @return
     */
    @Override
    public R AllSeedLocs() {
        List<CacheSite> cacheSites = cacheSiteMapper.selectList(new LambdaQueryWrapper<CacheSite>());
        if (cacheSites.isEmpty()) {
            return R.error("当前播种墙信息未设置!!");
        }
        return R.ok(cacheSites);
    }
}