From 9691382d22efb241056177f92cd22040e3224303 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 14 八月 2025 11:21:45 +0800 Subject: [PATCH] no message --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java | 74 +++++++++++++++++++++++++++++++++++- 1 files changed, 71 insertions(+), 3 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java index 626d2d4..ee6b2e7 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java @@ -9,11 +9,14 @@ import com.vincent.rsf.server.api.entity.dto.PoItemsDto; import com.vincent.rsf.server.api.service.ReceiveMsgService; import com.vincent.rsf.server.api.service.ReportMsgService; +import com.vincent.rsf.server.common.utils.DateUtils; +import com.vincent.rsf.server.manager.controller.dto.DashboardDto; +import com.vincent.rsf.server.manager.controller.dto.StockTrandDto; +import com.vincent.rsf.server.manager.controller.dto.StockTransItemDto; import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams; import com.vincent.rsf.server.manager.controller.params.BatchUpdateParam; import com.vincent.rsf.server.manager.entity.*; -import com.vincent.rsf.server.manager.enums.AsnExceStatus; -import com.vincent.rsf.server.manager.enums.POExceStatus; +import com.vincent.rsf.server.manager.enums.*; import com.vincent.rsf.server.manager.mapper.AsnOrderMapper; import com.vincent.rsf.server.manager.service.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -27,6 +30,9 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.text.DateFormat; +import java.text.ParsePosition; +import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -59,6 +65,10 @@ private PurchaseService purchaseService; @Autowired private PurchaseItemService purchaseItemService; + @Autowired + private AsnOrderService asnOrderService; + @Autowired + private TaskService taskService; @Override public boolean notifyInspect(List<WkOrder> orders) { @@ -392,7 +402,6 @@ throw new CoolException("浠诲姟涓崟鎹笉鍙垹闄わ紒锛�"); } - if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>() .in(WkOrderItem::getOrderId, ids))) { // throw new CoolException("Details Delete Fail"); @@ -402,6 +411,65 @@ } /** + * 鑾峰彇棣栭〉琛ㄥご鏁版嵁 + * @return + */ + @Override + public R getDashbord() { + DashboardDto dto = new DashboardDto(); + //鑾峰彇鍏ュ簱鏁伴噺 + DashboardDto trandDto = this.baseMapper.getDashbord(OrderType.ORDER_IN.type, TaskType.TASK_TYPE_IN.type + ""); + dto.setInAnf(trandDto.getAnfme()).setTaskIn(trandDto.getRealAnfme()).setTotalIn(trandDto.getAnfme() + trandDto.getRealAnfme()); + + //鑾峰彇鍑哄簱鍗曟暟閲� + DashboardDto outTrand = this.baseMapper.getDashbord(OrderType.ORDER_OUT.type, TaskType.TASK_TYPE_OUT.type + ""); + dto.setOutAnf(outTrand.getAnfme()).setTaskOut(outTrand.getRealAnfme()).setTotalOut(outTrand.getAnfme() + outTrand.getRealAnfme()); + + //鑾峰彇鎵ц涓换鍔℃暟閲� + List<Task> tasks = taskService.list(new LambdaQueryWrapper<>()); + if (!tasks.isEmpty()) { + outTrand.setTaskQty(tasks.size()); + } + return R.ok().add(dto); + } + + /** + * 鑾峰彇鍑哄叆搴撹秼鍔� + * @return + */ + @Override + public R getStockTrand() { + List<String> days = DateUtils.getLastMonthDays("yyyy-MM-dd"); + LambdaQueryWrapper<StockStatistic> queryWrapper = new LambdaQueryWrapper<StockStatistic>() + .in(StockStatistic::getTaskType, Arrays.asList(TaskType.TASK_TYPE_IN.type, TaskType.TASK_TYPE_OUT.type)); + List<StockTransItemDto> items = this.baseMapper.getStockTrand(queryWrapper); + if (items.isEmpty()) { + return R.ok(); + } + List<StockTransItemDto> stockDtos = new ArrayList<>(); + days.forEach(day -> { + StockTransItemDto itemDto = new StockTransItemDto(); + itemDto.setInQty(0).setOutQty(0).setOutAnfme(0).setOutAnfme(0); + items.forEach(item -> { + if (item.getOrderTime().equals(day)) { + BeanUtils.copyProperties(item, itemDto); + } + }); + itemDto.setOrderTime(day); + stockDtos.add(itemDto); + }); + + //鑾峰彇鏈�澶у�� + Optional<Integer> max = stockDtos.stream().map(StockTransItemDto::getInQty).filter(Objects::nonNull).max(Comparator.naturalOrder()); + Optional<Integer> maxOut = stockDtos.stream().map(StockTransItemDto::getOutQty).filter(Objects::nonNull).max(Comparator.naturalOrder()); + int maxed = Math.max(max.orElse(Integer.MIN_VALUE), maxOut.orElse(Integer.MIN_VALUE)); + + StockTrandDto trandDto = new StockTrandDto(); + trandDto.setMaxQty(maxed).setTrandItem(stockDtos); + return R.ok().add(trandDto); + } + + /** * @param * @return * @author Ryan -- Gitblit v1.9.1