From 6c1d09d5e692f0b43f5dfb2288a4aef728046b06 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期一, 07 四月 2025 16:51:25 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 105 ++++++++++++++++++++++++++--------------------------
1 files changed, 53 insertions(+), 52 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 e84ec9b..b6536c2 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
@@ -1,5 +1,6 @@
package com.vincent.rsf.server.api.service.impl;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.R;
@@ -13,10 +14,13 @@
import com.vincent.rsf.server.common.enums.WarehouseAreaType;
import com.vincent.rsf.server.common.security.JwtSubject;
import com.vincent.rsf.server.common.utils.CommonUtil;
+import com.vincent.rsf.server.common.utils.FieldsUtils;
+import com.vincent.rsf.server.common.utils.JSONUtil;
import com.vincent.rsf.server.common.utils.JwtUtil;
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.*;
+import com.vincent.rsf.server.manager.enums.AsnExceStatus;
import com.vincent.rsf.server.manager.mapper.*;
import com.vincent.rsf.server.manager.service.*;
import com.vincent.rsf.server.system.constant.CodeRes;
@@ -29,6 +33,7 @@
import com.vincent.rsf.server.system.mapper.UserMapper;
import com.vincent.rsf.server.system.service.FieldsItemService;
import com.vincent.rsf.server.system.service.UserLoginService;
+import com.vincent.rsf.server.system.utils.ExtendFieldsUtils;
import com.vincent.rsf.server.system.utils.SerialRuleUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
@@ -181,25 +186,25 @@
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public R receiptToWarehouse(ReceiptParams params) {
- if (params.getReceipts().isEmpty()) {
+ public R receiptToWarehouse(Map<String, Object> params) {
+ if (Objects.isNull(params)) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ ReceiptParams receiptParam = JSONObject.parseObject(JSONObject.toJSONString(params), ReceiptParams.class);
+ if (receiptParam.getReceipts().isEmpty()) {
throw new CoolException("鏀惰揣鏄庣粏涓嶈兘涓虹┖锛侊紒");
}
- if (Objects.isNull(params.getWhAreaId())) {
+ if (Objects.isNull(receiptParam.getWhAreaId())) {
throw new CoolException("搴撳尯鏍囪瘑涓嶈兘涓虹┖锛侊紒");
}
WarehouseAreas areasItem = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>()
- .eq(WarehouseAreas::getId, params.getWhAreaId()));
+ .eq(WarehouseAreas::getId, receiptParam.getWhAreaId()));
if (Objects.isNull(areasItem)) {
throw new CoolException("鏁版嵁閿欒锛氬綋鍓嶅簱鍖轰笉瀛樺湪锛侊紒");
}
- //鑾峰彇宸插惎鐢ㄧ殑鍔ㄦ�佹墿灞曞瓧
- List<Fields> fields = fieldsMapper.selectList(new LambdaQueryWrapper<Fields>()
- .eq(Fields::getFlagEnable, 1)
- .eq(Fields::getStatus, 1));
- List<ReceiptDetlsDto> receipts = params.getReceipts();
+ List<ReceiptDetlsDto> receipts = receiptParam.getReceipts();
List<WarehouseAreasItem> allOrders = new ArrayList<>();
Double receiptQty = receipts.stream().mapToDouble(ReceiptDetlsDto::getReceiptQty).sum();
@@ -211,15 +216,17 @@
if (Objects.isNull(asnOrder)) {
throw new CoolException("鏁版嵁閿欒锛氫富鍗曚笉瀛樺湪锛侊紒");
}
- /**鏀惰揣鏁伴噺绱姞锛�1. 浼氬嚭瓒呮敹鎯呭喌 2. 浼氭湁鏀惰揣涓嶈冻鎯呭喌*/
+ //TODO /**鏀惰揣鏁伴噺绱姞锛�1. 浼氬嚭瓒呮敹鎯呭喌 2. 浼氭湁鏀惰揣涓嶈冻鎯呭喌*/
Double rcptedQty = asnOrder.getQty() + receiptQty;
- asnOrder.setQty(rcptedQty);
+ asnOrder.setQty(rcptedQty).setExceStatus(Short.parseShort(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val));
if (!asnOrderMapper.updateById(asnOrder)) {
throw new CoolException("宸叉敹璐ф暟閲忎慨鏀瑰け璐ワ紒锛�");
}
-
- receipts.forEach(dto -> {
+ List<Map<String, Object>> receipts1 = (List<Map<String, Object>>) params.get("receipts");
+ for (Map<String, Object> rcpt : receipts1) {
+ if (Objects.isNull(rcpt)) {continue;}
+ ReceiptDetlsDto dto = JSONObject.parseObject(JSONObject.toJSONString(rcpt), ReceiptDetlsDto.class);
Matnr matnr = matnrMapper.selectById(dto.getMatnrId());
if (Objects.isNull(matnr)) {
throw new CoolException("鏁版嵁閿欒锛氬綋鍓嶇墿鏂欎笉瀛樺湪锛侊紒");
@@ -227,10 +234,9 @@
if (Objects.isNull(dto.getReceiptQty())) {
throw new CoolException("鏀惰揣鏁版嵁涓嶈兘涓虹┖锛侊紒");
}
- if (dto.getReceiptQty().compareTo(dto.getAnfme()) > 0) {
- throw new CoolException("鏀惰揣鏁伴噺涓嶈兘澶т簬閲囪喘鏁伴噺锛侊紒");
- }
-
+// if (dto.getReceiptQty().compareTo(dto.getAnfme()) > 0) {
+// throw new CoolException("鏀惰揣鏁伴噺涓嶈兘澶т簬閲囪喘鏁伴噺锛侊紒");
+// }
AsnOrderItem orderItem = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>()
.eq(AsnOrderItem::getAsnCode, asnCode)
.eq(AsnOrderItem::getMatnrId, dto.getMatnrId()));
@@ -240,8 +246,26 @@
if (Objects.isNull(dto.getReceiptQty()) || Double.compare(dto.getReceiptQty(), 0.0) == 0) {
throw new CoolException("鏀惰揣鏁伴噺涓嶈兘涓洪浂锛侊紒");
}
- orderItem.setQty(dto.getReceiptQty())
+ Double itemRcptQty = dto.getReceiptQty() + orderItem.getQty();
+ orderItem.setQty(itemRcptQty)
+ .setSplrBatch(dto.getSplrBatch())
+ .setStockUnit(dto.getStockUnit())
.setProdTime(dto.getProdTime());
+
+ if (!Objects.isNull(rcpt)) {
+ try {
+ if (Objects.isNull(rcpt.get("fieldsindex")) || StringUtils.isBlank(rcpt.get("fieldsindex").toString())) {
+ //鑾峰彇16浣島uid
+ String uuid16 = CommonUtil.randomUUID16();
+ rcpt.put("index", uuid16);
+ orderItem.setFieldsIndex(uuid16);
+ }
+ //淇濆瓨鎴栨洿鏂版墿灞曞瓧娈�
+ FieldsUtils.updateFieldsValue(rcpt);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
if (asnOrderItemMapper.updateById(orderItem) < 1) {
throw new CoolException("閫氱煡鍗曟槑缁嗘暟閲忎慨鏀瑰け璐ワ紒锛�");
@@ -253,15 +277,18 @@
// if (Objects.isNull(dto.getProdTime())) {
// format = dateFormat.format(dto.getProdTime());
// }
- item.setBarcode(dto.getBarcode())
+ item.setTrackCode(dto.getBarcode())
.setAreaName(areasItem.getName())
.setAreaId(areasItem.getId())
+ .setAsnItemId(orderItem.getId())
+ .setAsnCode(asnOrder.getCode())
+ .setAsnId(asnOrder.getId())
.setProdTime(dto.getProdTime())
.setWeight(dto.getWeigth())
.setStockUnit(dto.getStockUnit())
.setBatch(SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_RECEIPT_BATCH, dto))
- .setAnfme(dto.getReceiptQty())
- .setSplrBtch(dto.getSplrBatch())
+ .setAnfme(itemRcptQty)
+ .setSplrBatch(dto.getSplrBatch())
.setMatnrCode(matnr.getCode())
.setMatnrId(matnr.getId())
.setMatnrName(matnr.getName())
@@ -269,38 +296,12 @@
.setUnit(dto.getStockUnit())
.setStockUnit(dto.getStockUnit())
.setWeight(matnr.getWeight())
+ .setFieldsIndex(orderItem.getFieldsIndex())
.setShipperId(matnr.getShipperId());
- //TODO 渚涘簲鍟嗘爣璇嗘湭璁剧疆锛屾爣璇嗙敱PO鍗曚緵搴斿晢缂栫爜杞崲
+ //TODO 渚涘簲鍟嗘爣璇嗘湭璁剧疆锛屾爣璇嗙敱PO鍗曚緵搴斿晢缂栫爜杞崲
- if (!Objects.isNull(fields)) {
- if (!Objects.isNull(dto.getExtendFields())) {
- //鑾峰彇16浣島uid
- String uuid16 = CommonUtil.randomUUID16();
- Map<String, Object> extendFields = dto.getExtendFields();
- //瀛楁闆嗗悎鐢虫槑
- List<FieldsItem> fieldsItems = new ArrayList<>();
- extendFields.keySet().forEach(key -> {
- fields.forEach(obj -> {
- //鍒ゆ柇key鍊间笌fields琛ㄥ瓧娈垫槸鍚︾浉鍚�
- if (obj.getFields().equals(key)) {
- FieldsItem fieldsItem = new FieldsItem();
- fieldsItem.setMatnrId(matnr.getId()).setFieldsId(obj.getId())
- .setShiperId(matnr.getShipperId())
- .setValue(extendFields.get(key).toString())
- .setUuid(uuid16);
- fieldsItems.add(fieldsItem);
- //鍞竴鏍囪瘑鍏ュ簱
- item.setFieldsIndex(uuid16);
- }
- });
- });
- if (!fieldsItemService.saveBatch(fieldsItems)) {
- throw new CoolException("鎵╁睍瀛楁淇濆瓨澶辫触锛侊紒");
- }
- }
- }
allOrders.add(item);
- });
+ }
if (!warehouseAreasItemService.saveBatch(allOrders)) {
throw new CoolException("鏀惰揣澶辫触锛侊紒");
@@ -378,7 +379,7 @@
@Override
public R getDeltByCode(String code) {
- return R.ok(asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getTrackCode, code)));
+ return R.ok(warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>().eq(WarehouseAreasItem::getTrackCode, code)));
}
/**
@@ -713,6 +714,7 @@
detlsDto.setAsnCode(asnOrderItem.getAsnCode())
.setMaktx(asnOrderItem.getMaktx())
+ .setFieldsIndex(asnOrderItem.getFieldsIndex())
.setBarcode(asnOrderItem.getTrackCode())
.setQty(asnOrderItem.getQty())
.setPoCode(asnOrderItem.getPoCode())
@@ -753,7 +755,6 @@
detlsDto.setPlatformId(purchaseItem.getPlatItemId());
}
}
-
detlsDtos.add(detlsDto);
});
--
Gitblit v1.9.1