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);
|
}
|
}
|