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