From 37467bf7d119ef9b599f1c19b869d046d730b7cb Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期日, 27 四月 2025 18:27:56 +0800 Subject: [PATCH] 修改优化 1. 波次生成修改优化 2. 出库库位查找 优化 --- rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 82 ++++++++++++++++++++++++++++++++++++++-- 1 files changed, 77 insertions(+), 5 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java index 198b8f1..33a6fb9 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java @@ -17,6 +17,7 @@ import com.vincent.rsf.server.common.utils.CommonUtil; import com.vincent.rsf.server.common.utils.FieldsUtils; import com.vincent.rsf.server.common.utils.JwtUtil; +import com.vincent.rsf.server.manager.controller.params.GenerateTaskParams; import com.vincent.rsf.server.manager.controller.params.IsptItemsParams; import com.vincent.rsf.server.manager.controller.params.WaitPakinParam; import com.vincent.rsf.server.manager.entity.*; @@ -123,6 +124,8 @@ private LocAreaRelaMapper locAreaRelaMapper; @Autowired private LocAreaMapper locAreaMapper; + @Autowired + private DeviceSiteMapper deviceSiteMapper; /** * @author Ryan @@ -224,7 +227,7 @@ } //TODO /**鏀惰揣鏁伴噺绱姞锛�1. 浼氬嚭瓒呮敹鎯呭喌 2. 浼氭湁鏀惰揣涓嶈冻鎯呭喌*/ Double rcptedQty = asnOrder.getQty() + receiptQty; - asnOrder.setQty(rcptedQty).setExceStatus(Short.parseShort(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val)); + asnOrder.setQty(rcptedQty).setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val); if (!asnOrderMapper.updateById(asnOrder)) { throw new CoolException("宸叉敹璐ф暟閲忎慨鏀瑰け璐ワ紒锛�"); @@ -245,6 +248,7 @@ // } AsnOrderItem orderItem = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>() .eq(AsnOrderItem::getAsnCode, asnCode) + .eq(AsnOrderItem::getTrackCode, dto.getBarcode()) .eq(AsnOrderItem::getMatnrId, dto.getMatnrId())); if (Objects.isNull(orderItem)) { throw new CoolException("閫氱煡鍗曟槑缁嗕笉瀛樺湪锛侊紒"); @@ -355,7 +359,7 @@ */ @Override public List<AsnOrder> getAllAsnOrders() { - List<AsnOrder> asnOrders = asnOrderMapper.list(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getWkType, OrderWorkType.ORDER_PURCHASE_IN.type)); + List<AsnOrder> asnOrders = asnOrderMapper.list(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getWkType, OrderWorkType.ORDER_WORK_TYPE_PURCHASE.type)); return asnOrders; } @@ -618,7 +622,7 @@ .eq(AsnOrder::getId, OrderId) .eq(AsnOrder::getType, OrderType.ORDER_PLAT_IN.type)); if (Objects.isNull(order)) { - throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�"); + throw new CoolException("闈炲钩搴撳崟鎹笉鍙墽琛屼汉宸ヤ笂鏋讹紒锛�"); } Stock stock = new Stock(); // if (!Objects.isNull(order.getPoCode()) && StringUtils.isNotBlank(order.getPoCode())) { @@ -650,7 +654,9 @@ itemList.forEach(asnOrderItem -> { LocItem item = new LocItem(); BeanUtils.copyProperties(asnOrderItem, item); - item.setId(loc.getId()) + item.setLocId(loc.getId()) + .setId(null) + .setLocCode(loc.getCode()) .setOrderId(order.getId()) .setOrderItemId(asnOrderItem.getId()) .setWkType(Short.parseShort(order.getWkType())) @@ -822,6 +828,71 @@ } /** + * @author Ryan + * @description 鑾峰彇鍏ュ簱缁勬嫋淇℃伅 + * @param barcode + * @return + */ + @Override + public R getPakinInStock(String barcode) { + WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, barcode)); + if (Objects.isNull(waitPakin)) { + throw new CoolException("缁勬嫋鍗曟嵁涓嶅瓨鍦紒锛�"); + } + List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().eq(WaitPakinItem::getPakinId, waitPakin.getId())); + if (pakinItems.isEmpty()) { + return R.ok(new ArrayList<>()); + } + return R.ok(pakinItems); + } + + /** + * @author Ryan + * @description 鑾峰彇搴撳彛绔欑偣淇℃伅 + * @return + */ + @Override + public R getDeviceSites() { + List<DeviceSite> sites = deviceSiteMapper.selectList(new LambdaQueryWrapper<DeviceSite>() + .select(DeviceSite::getId, DeviceSite::getSite, DeviceSite::getName) + .eq(DeviceSite::getStatus, 1) + .groupBy(DeviceSite::getSite, DeviceSite::getId, DeviceSite::getName)); + return R.ok(sites); + } + + /** + * @author Ryan + * @description 鑾峰彇鎺ㄨ崘搴撲綅 + * @return + */ + @Override + public R getRecommondLocs() { + return R.ok(locService.list(new LambdaQueryWrapper<Loc>().last("limit 10"))); + } + + /** + * @param map + * @param loginUserId + * @return + * @author Ryan + * @description 鐢熸垚浠诲姟鍒楄〃 + */ + @Override + public R generateTask(Map<String, Object> map, Long loginUserId) { + String barcode = map.get("barcode").toString(); + List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, barcode)); + if (waitPakins.isEmpty()) { + throw new CoolException("鍗曟嵁涓嶅瓨鍦� 锛侊紒"); + } + GenerateTaskParams taskParams = new GenerateTaskParams(); + taskParams.setWaitPakins(waitPakins) + .setSiteId(Long.parseLong(map.get("site").toString())) + .setLocCode(map.get("locCode").toString()); + return R.ok(taskService.generateTasks(taskParams, loginUserId)); + + } + + /** * 鑾峰彇ReceiptDetlsDtos */ private R getAsnOrderItem(List<AsnOrderItem> items) { @@ -855,7 +926,8 @@ } //鑾峰彇褰撳墠搴撳瓨淇℃伅 LocItem stockItem = locItemService.getOne(new LambdaQueryWrapper<LocItem>() - .eq(LocItem::getOrderItemId, asnOrderItem.getId()) +// .eq(LocItem::getOrderItemId, asnOrderItem.getId()) + .eq(LocItem::getFieldsIndex, asnOrderItem.getFieldsIndex()) .eq(LocItem::getBatch, asnOrderItem.getBatch()) .eq(LocItem::getMatnrId, asnOrderItem.getMatnrId())); //SET 褰撳墠搴撳瓨鏁伴噺 -- Gitblit v1.9.1