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 | 98 +++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 83 insertions(+), 15 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 02fc8aa..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) { @@ -91,7 +101,7 @@ if (orderItems.isEmpty()) { return new ArrayList<>(); } - List<Long> longList = orderItems.stream().map(WkOrderItem::getAsnId).collect(Collectors.toList()); + List<Long> longList = orderItems.stream().map(WkOrderItem::getOrderId).collect(Collectors.toList()); return this.listByIds(longList); } @@ -166,8 +176,8 @@ public void svaeOrUpdateOrderItem(AsnOrderAndItemsParams params, Long loginUserId) throws Exception { WkOrder orders = params.getOrders(); params.getItems().forEach(item -> { - item.put("asnId", orders.getId()); - item.put("asnCode", orders.getCode()); + item.put("orderId", orders.getId()); + item.put("orderCode", orders.getCode()); item.put("poCode", orders.getPoCode()); item.put("createBy", loginUserId); item.put("updateBy", loginUserId); @@ -176,7 +186,7 @@ } }); List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>() - .eq(WkOrderItem::getAsnId, params.getOrders().getId())); + .eq(WkOrderItem::getOrderId, params.getOrders().getId())); double sum = orderItems.stream().mapToDouble(WkOrderItem::getAnfme).sum(); orders.setAnfme(sum); if (!this.updateById(orders)) { @@ -294,9 +304,9 @@ throw new CoolException("鏂板缓鍗曟嵁鏁伴噺涓嶈兘澶т簬璁″垝鏁伴噺锛侊紒"); } orderItem.setAnfme(item.getAnfme()) - .setAsnId(order.getId()) + .setOrderId(order.getId()) .setSplrName(item.getSplrName()) - .setAsnCode(code) + .setOrderCode(code) .setSplrBatch(item.getSplrBatch()) .setSplrCode(item.getSplrCode()) .setPoDetlId(item.getId()) @@ -355,7 +365,7 @@ public R removeOrders(List<Long> ids) { for (Long id : ids) { List<WkOrderItem> list = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>() - .eq(WkOrderItem::getAsnId, id)); + .eq(WkOrderItem::getOrderId, id)); if (list.isEmpty()) { continue; } @@ -392,13 +402,71 @@ throw new CoolException("浠诲姟涓崟鎹笉鍙垹闄わ紒锛�"); } - if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>() - .in(WkOrderItem::getAsnId, ids))) { + .in(WkOrderItem::getOrderId, ids))) { // throw new CoolException("Details Delete Fail"); } return R.ok("鎿嶄綔鎴愬姛锛侊紒"); + } + + /** + * 鑾峰彇棣栭〉琛ㄥご鏁版嵁 + * @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); } /** @@ -418,7 +486,7 @@ if (!this.updateById(asrder)) { throw new CoolException("鍗曟嵁鍏抽棴澶辫触锛侊紒"); } - List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getAsnId, asrder.getId())); + List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, asrder.getId())); if (orderItems.isEmpty()) { throw new CoolException("鏀惰揣鏄庣粏涓虹┖锛侊紒"); } @@ -440,20 +508,20 @@ throw new CoolException("涓诲崟鍘嗗彶妗f坊鍔犲け璐ワ紒锛�"); } List<AsnOrderItemLog> logs = new ArrayList<>(); - List<WkOrderItem> items = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getAsnId, order.getId())); + List<WkOrderItem> items = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, order.getId())); items.forEach(item -> { AsnOrderItemLog itemLog = new AsnOrderItemLog(); BeanUtils.copyProperties(item, itemLog); itemLog.setAsnItemId(itemLog.getId()) .setLogId(orderLog.getId()) - .setAsnId(item.getAsnId()); + .setAsnId(item.getOrderId()); logs.add(itemLog); }); if (!asnOrderItemLogService.saveBatch(logs)) { throw new CoolException("閫氱煡鍗曟槑缁嗗巻鍙叉。淇濆瓨澶辫触锛侊紒"); } - if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getAsnId, order.getId()))) { + if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, order.getId()))) { throw new CoolException("鍘熷崟鎹槑缁嗗垹闄ゅけ璐ワ紒锛�"); } if (!this.removeById(asrder.getId())) { -- Gitblit v1.9.1