From ba4a73717339424325a8f82d0f10ec22aec1aad3 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期六, 12 四月 2025 10:12:39 +0800 Subject: [PATCH] #新增 1. 修改不良品组拖功能 2. 新装车不良品获取 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/WaitPakinParam.java | 3 rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java | 2 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakin.java | 6 + rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java | 20 +++++ rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java | 101 +++++++++++++++---------- rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 48 ++++++++--- rsf-admin/.env | 2 rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/MatnrDefectType.java | 26 ++++++ rsf-server/src/main/resources/application-dev.yml | 2 9 files changed, 155 insertions(+), 55 deletions(-) diff --git a/rsf-admin/.env b/rsf-admin/.env index a8ce658..a3c69b2 100644 --- a/rsf-admin/.env +++ b/rsf-admin/.env @@ -1,3 +1,3 @@ -VITE_BASE_IP=192.168.4.24 +VITE_BASE_IP=127.0.0.1 # VITE_BASE_IP=47.76.147.249 VITE_BASE_PORT=8080 diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java index aaffe4f..ddeb48c 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java @@ -264,4 +264,24 @@ return mobileService.completeOrder(id, getLoginUserId()); } + + @ApiOperation("鑾峰彇涓嶈壇鎵樼洏鐗╂枡") + @PostMapping("/defect/matnrs") + @PreAuthorize("hasAuthority('manager:asnOrder:list')") + public R getAsnDefectItemByCode(@RequestBody Map<String, Object> map) { + if (Objects.isNull(map)) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + return mobileService.getItemByContainer(map); + } + + @ApiOperation("鑾峰彇璁㈠崟涓嶈壇鐗╂枡") + @PostMapping("/defect/{trackCode}") + @PreAuthorize("hasAuthority('manager:asnOrder:list')") + public R defectProducts(@PathVariable String trackCode) { + if (Objects.isNull(trackCode)) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + return mobileService.defectProducts(trackCode); + } } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/MatnrDefectType.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/MatnrDefectType.java new file mode 100644 index 0000000..34563ec --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/MatnrDefectType.java @@ -0,0 +1,26 @@ +package com.vincent.rsf.server.api.entity.enums; + +/** + * @author Ryan + * @version 1.0 + * @title MatnrDefectType + * @description + * @create 2025/4/12 09:34 + */ +public enum MatnrDefectType { + //鐗╂枡涓嶈壇绫诲瀷 + MATNR_DEFECT_NORMAL("0", "姝e父"), + MATNR_DEFECT_FIX("1", "寰呰繑淇�"), + MATNR_DEFECT_SCRAP("2", "寰呮姤搴�"), + MATNR_DEFECT_DEGRADE("3", "寰呴檷绾�"), + MATNR_DEFECT_PENDING("4", "寰呭畾"), + ; + + MatnrDefectType(String type, String desc) { + this.type = Short.parseShort(type); + this.val = desc; + } + + public Short type; + public String val; +} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java index b63ead2..ab4daa7 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java @@ -61,4 +61,6 @@ R completeOrder(Long id, Long loginUserId); R getItemByContainer(Map<String, Object> params); + + R defectProducts(String trackCode); } 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 0229436..efd29ac 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 @@ -740,8 +740,13 @@ public R getItemByContainer(Map<String, Object> params) { //鑾峰彇缁勬嫋鏈敓鎴愪换鍔$殑缁勬嫋妗� List<Short> asList = Arrays.asList(Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val), Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val)); + Short flagDefect = 0; + if (!Objects.isNull(params.get("type")) && params.get("type").equals("defective")) { + flagDefect = 1; + } WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>() .eq(WaitPakin::getBarcode, params.get("barcode").toString()) + .eq(WaitPakin::getFlagDefect, flagDefect) .in(WaitPakin::getIoStatus, asList)); if (Objects.isNull(waitPakin)) { return R.ok(new ArrayList<>()); @@ -751,22 +756,39 @@ if (pakinItems.isEmpty()) { return R.ok(new ArrayList<>()); } - List<String> list = pakinItems.stream().map(WaitPakinItem::getTrackCode).collect(Collectors.toList()); - LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new QueryWrapper<WarehouseAreasItem>() - .select("SUM(anfme) as anfme, track_code, asn_code, id, splr_batch, ispt_result, plat_item_id, batch, qty, work_qty, matnr_code, matnr_id, maktx") - .lambda() - .in(WarehouseAreasItem::getTrackCode, list) - .groupBy(WarehouseAreasItem::getSplrBatch, - WarehouseAreasItem::getTrackCode); - List<WarehouseAreasItem> warehouseAreasItems = warehouseAreasItemService.list(queryWrapper); - for (int i = 0; i < warehouseAreasItems.size(); i++) { - for (WaitPakinItem pakinItem : pakinItems) { - if (warehouseAreasItems.get(i).getTrackCode().equals(pakinItem.getTrackCode())) { - warehouseAreasItems.get(i).setAnfme(pakinItem.getAnfme()); + if (!Objects.isNull(params.get("type")) && params.get("type").equals("defective")) { + return R.ok(pakinItems); + } else { + List<String> list = pakinItems.stream().map(WaitPakinItem::getTrackCode).collect(Collectors.toList()); + LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new QueryWrapper<WarehouseAreasItem>() + .select("SUM(anfme) as anfme, track_code, asn_code, id, splr_batch, ispt_result, plat_item_id, batch, qty, work_qty, matnr_code, matnr_id, maktx") + .lambda() + .in(WarehouseAreasItem::getTrackCode, list) + .groupBy(WarehouseAreasItem::getSplrBatch, + WarehouseAreasItem::getTrackCode); + List<WarehouseAreasItem> warehouseAreasItems = warehouseAreasItemService.list(queryWrapper); + for (int i = 0; i < warehouseAreasItems.size(); i++) { + for (WaitPakinItem pakinItem : pakinItems) { + if (warehouseAreasItems.get(i).getTrackCode().equals(pakinItem.getTrackCode())) { + warehouseAreasItems.get(i).setAnfme(pakinItem.getAnfme()); + } } } + return R.ok(warehouseAreasItems); } - return R.ok(warehouseAreasItems); + } + + /** + * @author Ryan + * @description 涓嶈壇鏍囩 + * @param + * @return + * @time 2025/4/12 08:12 + */ + @Override + public R defectProducts(String trackCode) { + AsnOrderItem orderItem = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getTrackCode, trackCode)); + return R.ok(orderItem); } /** diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/WaitPakinParam.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/WaitPakinParam.java index 5a8ca9d..9e83b73 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/WaitPakinParam.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/WaitPakinParam.java @@ -19,5 +19,8 @@ @ApiModelProperty("璺熻釜鐮�") private List<PakinItem> items; + @ApiModelProperty("缁勬嫋绫诲瀷{null: 缁勬嫋, defective: 涓嶈壇鍝亇") + private String type; + } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakin.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakin.java index d4b1461..3bd249f 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakin.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakin.java @@ -62,6 +62,12 @@ private Short ioStatus; /** + * 鏄惁涓嶈壇鍝� + */ + @ApiModelProperty("鏄惁涓嶈壇鍝�") + private Short flagDefect; + + /** * 鐘舵�� 1: 姝e父 0: 鍐荤粨 */ @ApiModelProperty(value= "鐘舵�� 1: 姝e父 0: 鍐荤粨 ") diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java index 75bdb0e..07e3d46 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java @@ -107,48 +107,69 @@ throw new CoolException("鍘熷崟鎹竻闄ゅけ璐ワ紒锛�"); } } - - LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new QueryWrapper<WarehouseAreasItem>() - .select("SUM(anfme) as anfme, track_code, asn_code, id, splr_batch, ispt_result, plat_item_id, batch, qty, work_qty, matnr_code, matnr_id, maktx") - .lambda() - .in(WarehouseAreasItem::getTrackCode, tracks) - .groupBy(WarehouseAreasItem::getSplrBatch, - WarehouseAreasItem::getTrackCode); - List<WarehouseAreasItem> warehouseAreasItems = warehouseAreasItemService.list(queryWrapper); - if (Objects.isNull(warehouseAreasItems) || warehouseAreasItems.isEmpty()) { - throw new CoolException("鐗╂枡鏈�佽嚦鏀惰揣鍖猴紒锛�"); - } List<WaitPakinItem> items = new ArrayList<>(); - for (WarehouseAreasItem item : warehouseAreasItems) { - WaitPakinItem pakinItem = new WaitPakinItem(); - pakinItem.setAnfme(item.getAnfme()) - .setPakinId(waitPakin1.getId()) - .setAsnId(item.getAsnId()) - .setAsnCode(item.getAsnCode()) - .setAsnItemId(item.getId()) - .setBatch(item.getSplrBatch()) - .setUnit(item.getStockUnit()) - .setFieldsIndex(item.getFieldsIndex()) - .setMatnrId(item.getMatnrId()) - .setMaktx(item.getMaktx()) - .setMatnrCode(item.getMatnrCode()); - for (PakinItem waitPakinItem : waitPakin.getItems()) { - if (waitPakinItem.getTrackCode().equals(item.getTrackCode())) { - if (waitPakinItem.getReceiptQty() > item.getAnfme()) { - throw new CoolException("缁勬嫋鏁伴噺涓嶈兘澶т簬鏀惰揣鏁伴噺锛侊紒"); - } - pakinItem - .setAnfme(waitPakinItem.getReceiptQty()) - .setTrackCode(waitPakinItem.getTrackCode()); - /**鏇存柊鍗曟嵁鎵ц涓簱瀛�*/ -// if (v.compareTo(item.getAnfme()) > 0) {throw new CoolException("鎵ц涓暟閲忓ぇ浜庢敹璐ф暟閲忥紒锛�");} -// if (!asnOrderItemService.update(new LambdaUpdateWrapper<AsnOrderItem>() -// .eq(AsnOrderItem::getTrackCode, waitPakinItem.getTrackCode()).set(AsnOrderItem::getWorkQty, v))) { -// throw new CoolException("鎵ц涓簱瀛樻洿鏂板け璐ワ紒锛�"); -// } - } + if (!Objects.isNull(waitPakin.getType()) && waitPakin.getType().equals("defective")) { + List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getTrackCode, tracks)); + if (Objects.isNull(orderItems) || orderItems.isEmpty()) { + throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�"); } - items.add(pakinItem); + for (AsnOrderItem item : orderItems) { + WaitPakinItem pakinItem = new WaitPakinItem(); + pakinItem.setAnfme(item.getAnfme()) + .setPakinId(waitPakin1.getId()) + .setAsnId(item.getAsnId()) + .setAsnCode(item.getAsnCode()) + .setAsnItemId(item.getId()) + .setBatch(item.getSplrBatch()) + .setUnit(item.getStockUnit()) + .setFieldsIndex(item.getFieldsIndex()) + .setMatnrId(item.getMatnrId()) + .setMaktx(item.getMaktx()) + .setMatnrCode(item.getMatnrCode()); + for (PakinItem waitPakinItem : waitPakin.getItems()) { + if (waitPakinItem.getTrackCode().equals(item.getTrackCode())) { + if (waitPakinItem.getReceiptQty() > item.getAnfme()) { + throw new CoolException("缁勬嫋鏁伴噺涓嶈兘澶т簬鏀惰揣鏁伴噺锛侊紒"); + } + pakinItem.setAnfme(waitPakinItem.getReceiptQty()).setTrackCode(waitPakinItem.getTrackCode()); + } + } + items.add(pakinItem); + } + } else { + LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new QueryWrapper<WarehouseAreasItem>() + .select("SUM(anfme) as anfme, track_code, asn_code, id, splr_batch, ispt_result, plat_item_id, batch, qty, work_qty, matnr_code, matnr_id, maktx") + .lambda() + .in(WarehouseAreasItem::getTrackCode, tracks) + .groupBy(WarehouseAreasItem::getSplrBatch, + WarehouseAreasItem::getTrackCode); + List<WarehouseAreasItem> warehouseAreasItems = warehouseAreasItemService.list(queryWrapper); + if (Objects.isNull(warehouseAreasItems) || warehouseAreasItems.isEmpty()) { + throw new CoolException("鐗╂枡鏈�佽嚦鏀惰揣鍖猴紒锛�"); + } + for (WarehouseAreasItem item : warehouseAreasItems) { + WaitPakinItem pakinItem = new WaitPakinItem(); + pakinItem.setAnfme(item.getAnfme()) + .setPakinId(waitPakin1.getId()) + .setAsnId(item.getAsnId()) + .setAsnCode(item.getAsnCode()) + .setAsnItemId(item.getId()) + .setBatch(item.getSplrBatch()) + .setUnit(item.getStockUnit()) + .setFieldsIndex(item.getFieldsIndex()) + .setMatnrId(item.getMatnrId()) + .setMaktx(item.getMaktx()) + .setMatnrCode(item.getMatnrCode()); + for (PakinItem waitPakinItem : waitPakin.getItems()) { + if (waitPakinItem.getTrackCode().equals(item.getTrackCode())) { + if (waitPakinItem.getReceiptQty() > item.getAnfme()) { + throw new CoolException("缁勬嫋鏁伴噺涓嶈兘澶т簬鏀惰揣鏁伴噺锛侊紒"); + } + pakinItem.setAnfme(waitPakinItem.getReceiptQty()).setTrackCode(waitPakinItem.getTrackCode()); + } + } + items.add(pakinItem); + } } double sum1 = items.stream().mapToDouble(WaitPakinItem::getAnfme).sum(); if (!waitPakinItemService.saveBatch(items)) { diff --git a/rsf-server/src/main/resources/application-dev.yml b/rsf-server/src/main/resources/application-dev.yml index 93d6e25..efd3d05 100644 --- a/rsf-server/src/main/resources/application-dev.yml +++ b/rsf-server/src/main/resources/application-dev.yml @@ -14,7 +14,7 @@ driver-class-name: com.mysql.jdbc.Driver # url: jdbc:mysql://47.76.147.249:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai username: root - url: jdbc:mysql://192.168.4.24:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai + url: jdbc:mysql://127.0.0.1:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai # username: rsf password: 34821015 type: com.alibaba.druid.pool.DruidDataSource -- Gitblit v1.9.1