From f18a3cd65eb57f08ee0def135161054e03f66354 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 10 五月 2025 17:04:49 +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/manager/service/impl/QlyInspectServiceImpl.java | 128 +++++++++++++++++++++++++++++++++++++++---
1 files changed, 119 insertions(+), 9 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java
index 73eeacb..e5c461b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java
@@ -1,28 +1,30 @@
package com.vincent.rsf.server.manager.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
+import com.vincent.rsf.server.manager.controller.params.IsptOrderParam;
import com.vincent.rsf.server.manager.controller.params.QlyInspectAndItem;
-import com.vincent.rsf.server.manager.entity.AsnOrder;
-import com.vincent.rsf.server.manager.entity.AsnOrderItem;
-import com.vincent.rsf.server.manager.entity.QlyIsptItem;
+import com.vincent.rsf.server.manager.entity.*;
+import com.vincent.rsf.server.manager.enums.QlyIsptStatus;
import com.vincent.rsf.server.manager.mapper.QlyInspectMapper;
-import com.vincent.rsf.server.manager.entity.QlyInspect;
-import com.vincent.rsf.server.manager.service.AsnOrderItemService;
-import com.vincent.rsf.server.manager.service.AsnOrderService;
-import com.vincent.rsf.server.manager.service.QlyInspectService;
+import com.vincent.rsf.server.manager.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.vincent.rsf.server.manager.service.QlyIsptItemService;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
import com.vincent.rsf.server.system.utils.SerialRuleUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.stream.Collectors;
@Service("qlyInspectService")
public class QlyInspectServiceImpl extends ServiceImpl<QlyInspectMapper, QlyInspect> implements QlyInspectService {
@@ -35,6 +37,9 @@
@Autowired
private QlyIsptItemService qlyIsptItemService;
+
+ @Autowired
+ private WarehouseAreasItemService warehouseAreasItemService;
@Override
public List<AsnOrderItem> listByAsn(Map<String, Object> map) {
@@ -65,7 +70,7 @@
if (Objects.isNull(inspect.getWkType())) {
throw new CoolException("涓氬姟绫诲瀷涓嶈兘涓虹┖锛侊紒");
}
- String code = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_INSPECT_WK_TYPE, inspect);
+ String code = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_INSPECT_CODE, inspect);
inspect.setCode(code);
if (!this.saveOrUpdate(inspect)) {
throw new CoolException("璐ㄦ鍗曚繚瀛樺け璐ワ紒锛�");
@@ -87,4 +92,109 @@
}
return R.ok("淇濆瓨鎴愬姛锛侊紒");
}
+
+ /**
+ * @author Ryan
+ * @description 鑾峰彇鏈川妫�鍗曟嵁
+ * @param
+ * @return
+ * @time 2025/3/31 10:12
+ */
+ @Override
+ public List<WarehouseAreasItem> getUnInspect(Map<String, String> params) {
+ String code = params.get("asnCode");
+ List<WarehouseAreasItem> warehouseAreasItems = warehouseAreasItemService
+ .list(new QueryWrapper<WarehouseAreasItem>()
+ .select("asn_id as id, SUM(anfme) anfme, SUM(qty) qty, area_id, area_name, asn_code, asn_id")
+ .eq(StringUtils.isNotBlank(code), "asn_code", code)
+ .lambda()
+ .groupBy(WarehouseAreasItem::getAsnCode));
+ return warehouseAreasItems;
+ }
+
+ /**
+ * @author Ryan
+ * @description 淇濆瓨
+ * @param
+ * @return
+ * @time 2025/3/31 14:54
+ */
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R saveSelected(IsptOrderParam param, Long loginUserId) {
+ if (Objects.isNull(param.getIds()) || param.getIds().isEmpty()) {
+ throw new CoolException("鍗曟嵁ID涓嶈兘涓虹┖锛侊紒");
+ }
+ List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>().in(AsnOrder::getId, param.getIds()).eq(AsnOrder::getNtyStatus, 0));
+ if (asnOrders.isEmpty()) {
+ throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
+ }
+ List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getAsnId, param.getIds()));
+ if (orderItems.isEmpty()) {
+ throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
+ }
+ Map<Long, List<AsnOrderItem>> listMap = orderItems.stream().collect(Collectors.groupingBy(AsnOrderItem::getAsnId));
+ for (AsnOrder asnOrder : asnOrders) {
+ QlyInspect inspect = new QlyInspect();
+ String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_INSPECT_CODE, null);
+ if (StringUtils.isBlank(ruleCode)) {
+ throw new CoolException("绛栫暐閿欒锛氳妫�鏌ョ瓥鐣ャ��" + SerialRuleCode.SYS_INSPECT_CODE + "銆嶆槸鍚﹁缃纭紒锛�");
+ }
+ inspect.setCode(ruleCode)
+ .setWkType(asnOrder.getWkType())
+ .setIsptStatus(QlyIsptStatus.QLY_ISPT_STAS_ING.val)
+ .setCreateBy(loginUserId)
+ .setAsnId(asnOrder.getId())
+ .setAsnCode(asnOrder.getCode());
+ /**鑾峰彇鍗曟嵁鏄庣粏*/
+ List<AsnOrderItem> asnOrderItems = listMap.get(asnOrder.getId());
+ if (Objects.isNull(asnOrderItems) || asnOrderItems.isEmpty()) {
+ continue;
+ }
+ double rcptQty = asnOrderItems.stream().mapToDouble(AsnOrderItem::getQty).sum();
+ double anfme = asnOrderItems.stream().mapToDouble(AsnOrderItem::getAnfme).sum();
+ inspect.setRcptQty(rcptQty).setDlyQty(anfme);
+ if (!this.save(inspect)) {
+ throw new CoolException("鍗曟嵁" + asnOrder.getCode() + "淇濆瓨澶辫触锛侊紒");
+ }
+ List<QlyIsptItem> items = new ArrayList<>();
+ for (AsnOrderItem orderItem : asnOrderItems) {
+ QlyIsptItem isptItem = new QlyIsptItem();
+ BeanUtils.copyProperties(orderItem, isptItem);
+ isptItem.setAsnItemId(orderItem.getId())
+ .setIspectId(inspect.getId())
+ .setRcptQty(orderItem.getQty())
+ .setCreateBy(loginUserId)
+ .setDlyQty(orderItem.getAnfme());
+ items.add(isptItem);
+ }
+ if (!qlyIsptItemService.saveBatch(items)) {
+ throw new CoolException("鏄庣粏淇濆瓨澶辫触锛侊紒");
+ }
+ }
+ if (!asnOrderService.update(new LambdaUpdateWrapper<AsnOrder>().in(AsnOrder::getId, param.getIds()).set(AsnOrder::getNtyStatus, 1))) {
+ throw new CoolException("鎶ユ鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ return R.ok("淇濆瓨鎴愬姛锛侊紒");
+ }
+
+ @Override
+ public boolean qlySave(QlyInspect qlyInspect) {
+ String code = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_INSPECT_CODE, qlyInspect);
+ if (Objects.isNull(code) || StringUtils.isBlank(code)) {
+ throw new CoolException("缂栫爜瑙勫垯閿欒锛�" + "璇锋鏌ョ紪鐮侊細" + "銆孲YS_INSPECT_CODE銆�" + "鏄惁璁剧疆鎴愬姛锛侊紒");
+ }
+ qlyInspect.setCode(code);
+ if (Objects.isNull(qlyInspect.getAsnCode()) || StringUtils.isBlank(qlyInspect.getAsnCode())) {
+ throw new CoolException("鏀惰揣鍗曞彿涓嶈兘涓虹┖锛侊紒");
+ }
+ AsnOrder asnOrder = asnOrderService.getOne(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getId, qlyInspect.getAsnCode()));
+ if (Objects.isNull(asnOrder)) {
+ throw new CoolException("鏀惰揣鍗曚笉瀛樺湪锛侊紒");
+ }
+ qlyInspect.setAsnCode(asnOrder.getCode()).setAsnId(asnOrder.getId());
+
+ return this.save(qlyInspect);
+ }
}
--
Gitblit v1.9.1