From a372a11167f095bd70d1070d70ec36af56489898 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 18 四月 2025 17:56:58 +0800
Subject: [PATCH] 人工上架任务修改
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 109 insertions(+), 1 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..568cf81 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,12 +1,15 @@
package com.vincent.rsf.server.manager.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.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;
@@ -16,13 +19,17 @@
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 {
@@ -65,7 +72,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 +94,105 @@
}
return R.ok("淇濆瓨鎴愬姛锛侊紒");
}
+
+ /**
+ * @author Ryan
+ * @description 鑾峰彇鏈川妫�鍗曟嵁
+ * @param
+ * @return
+ * @time 2025/3/31 10:12
+ */
+ @Override
+ public List<AsnOrder> getUnInspect(Map<String, Object> params) {
+ List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>()
+ .eq(AsnOrder::getStatus, 1)
+ .eq(!Objects.isNull(params.get("asnCode")) && StringUtils.isNotBlank(params.get("asnCode").toString()), AsnOrder::getCode, StringUtils.isNotBlank(params.get("asnCode").toString()) ? params.get("asnCode").toString() : null));
+ return asnOrders;
+ }
+
+ /**
+ * @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