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 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 taskDtos = taskMapper.getTaskIntegrateByTaskNo(new LambdaQueryWrapper().eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id).orderByAsc(Task::getUpdateTime).last("limit 1")); return R.ok(taskDtos); } @Override public R getTaskDetl(String taskNo) { List taskDetls = taskMapper.getTaskDetlByTaskNo(taskNo); return R.ok(taskDetls); } /** * 获取非汇总明细数据 * @param taskNo * @return */ @Override public R getTaskDetlQutify(String taskNo) { List 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 orders = orderMapper.selectList(new LambdaQueryWrapper().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 cacheSites = cacheSiteMapper.selectList(new LambdaQueryWrapper()); if (cacheSites.isEmpty()) { return R.error("当前播种墙信息未设置!!"); } return R.ok(cacheSites); } }