From 9fe1ec3afe8696c628d076d1f76686c4efc3012e Mon Sep 17 00:00:00 2001
From: zc <zyzc>
Date: 星期二, 21 十月 2025 10:49:55 +0800
Subject: [PATCH] 容器初始化功能优化
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java | 183 ++++++++++++++++++++++++++++++++++-----------
1 files changed, 137 insertions(+), 46 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 9697614..3305f54 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,20 +1,16 @@
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.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;
@@ -41,24 +37,30 @@
@Autowired
private QlyIsptItemService qlyIsptItemService;
+ @Autowired
+ private CompanysService companysService;
+
+ @Autowired
+ private WarehouseAreasItemService warehouseAreasItemService;
+
@Override
- public List<AsnOrderItem> listByAsn(Map<String, Object> map) {
+ public List<WkOrderItem> listByAsn(Map<String, Object> map) {
if (Objects.isNull(map.get("asnCode"))) {
throw new CoolException("鏀惰揣鍗曟嵁鏄庣粏缂栫爜涓嶈兘涓虹┖锛侊紒");
}
- AsnOrder asnOrder = asnOrderService.getOne(new LambdaQueryWrapper<AsnOrder>()
- .eq(AsnOrder::getCode, map.get("asnCode"))
- .ne(AsnOrder::getNtyStatus, 0));
- if (Objects.isNull(asnOrder)) {
+ WkOrder wkOrder = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>()
+ .eq(WkOrder::getCode, map.get("asnCode"))
+ .ne(WkOrder::getNtyStatus, 0));
+ if (Objects.isNull(wkOrder)) {
throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
}
- List<AsnOrderItem> asnOrderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>()
- .eq(AsnOrderItem::getAsnCode, map.get("asnCode"))
- .eq(AsnOrderItem::getNtyStatus, 1));
- if (asnOrderItems.isEmpty()) {
+ List<WkOrderItem> wkOrderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>()
+ .eq(WkOrderItem::getOrderCode, map.get("asnCode"))
+ .eq(WkOrderItem::getNtyStatus, 1));
+ if (wkOrderItems.isEmpty()) {
return new ArrayList<>();
}
- return asnOrderItems;
+ return wkOrderItems;
}
@Override
@@ -100,56 +102,87 @@
* @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")), AsnOrder::getCode, !Objects.isNull(params.get("asnCode")) ? params.get("asnCode").toString() : "")
- .eq(AsnOrder::getNtyStatus, 0));
- return asnOrders;
+ 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, splr_id, splr_batch")
+ .eq(StringUtils.isNotBlank(code), "asn_code", code)
+ .lambda()
+// .isNull(WarehouseAreasItem::getIsptResult)
+ .lt(WarehouseAreasItem::getWorkQty, 1)
+ .lt(WarehouseAreasItem::getQty, 1)
+ .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) {
+ 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, 1));
- if (asnOrders.isEmpty()) {
+ List<WkOrder> wkOrders = asnOrderService.list(new LambdaQueryWrapper<WkOrder>().in(WkOrder::getId, param.getIds()));
+ if (wkOrders.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));
- List<QlyInspect> qlyInspects = new ArrayList<>();
- for (AsnOrder asnOrder : asnOrders) {
+// List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getAsnId, param.getIds()));
+// if (orderItems.isEmpty()) {
+// throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
+// }
+
+ List<WarehouseAreasItem> orderItems = warehouseAreasItemService.list(new LambdaQueryWrapper<WarehouseAreasItem>()
+ .in(WarehouseAreasItem::getAsnId, param.getIds()));
+ Map<Long, List<WarehouseAreasItem>> listMap = orderItems.stream().collect(Collectors.groupingBy(WarehouseAreasItem::getAsnId));
+ for (WkOrder wkOrder : wkOrders) {
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()).setAsnId(asnOrder.getId()).setCode(asnOrder.getCode());
+ inspect.setCode(ruleCode)
+ .setWkType(wkOrder.getWkType())
+ .setIsptStatus(QlyIsptStatus.QLY_ISPT_STAS_ING.val)
+ .setCreateBy(loginUserId)
+ .setAsnId(wkOrder.getId())
+ .setAsnCode(wkOrder.getCode());
/**鑾峰彇鍗曟嵁鏄庣粏*/
- List<AsnOrderItem> asnOrderItems = listMap.get(asnOrder.getId());
+ List<WarehouseAreasItem> asnOrderItems = listMap.get(wkOrder.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);
+ double anfme = asnOrderItems.stream().mapToDouble(WarehouseAreasItem::getAnfme).sum();
+ inspect.setRcptQty(anfme);
if (!this.save(inspect)) {
- throw new CoolException("鍗曟嵁" + asnOrder.getCode() + "淇濆瓨澶辫触锛侊紒");
+ throw new CoolException("鍗曟嵁" + wkOrder.getCode() + "淇濆瓨澶辫触锛侊紒");
}
List<QlyIsptItem> items = new ArrayList<>();
- for (AsnOrderItem orderItem : asnOrderItems) {
+ for (WarehouseAreasItem orderItem : asnOrderItems) {
QlyIsptItem isptItem = new QlyIsptItem();
BeanUtils.copyProperties(orderItem, isptItem);
isptItem.setAsnItemId(orderItem.getId())
- .setRcptQty(orderItem.getQty())
+ .setIspectId(inspect.getId())
+ .setRcptQty(orderItem.getAnfme())
+ .setRcptId(orderItem.getId())
+ .setPlatItemId(orderItem.getPlatItemId())
+ .setPlatOrderCode(orderItem.getPlatOrderCode())
+ .setPlatWorkCode(orderItem.getPlatWorkCode())
+ .setProjectCode(orderItem.getProjectCode())
+ .setAnfme(0.0)
+ .setFieldsIndex(orderItem.getFieldsIndex())
+ .setSplrBatch(orderItem.getSplrBatch())
+ .setSplrName(orderItem.getSplrId$())
+ .setCreateBy(loginUserId)
+ .setUpdateBy(loginUserId)
.setDlyQty(orderItem.getAnfme());
items.add(isptItem);
}
@@ -157,9 +190,67 @@
throw new CoolException("鏄庣粏淇濆瓨澶辫触锛侊紒");
}
}
- if (!this.saveBatch(qlyInspects)) {
- throw new CoolException("璐ㄦ鍗曚繚瀛樺け璐ワ紒锛�");
- }
+// if (!asnOrderService.update(new LambdaUpdateWrapper<AsnOrder>().in(AsnOrder::getId, param.getIds()))) {
+// 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("鏀惰揣鍗曞彿涓嶈兘涓虹┖锛侊紒");
+ }
+ WkOrder wkOrder = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>().eq(WkOrder::getId, qlyInspect.getAsnCode()));
+ if (Objects.isNull(wkOrder)) {
+ throw new CoolException("鏀惰揣鍗曚笉瀛樺湪锛侊紒");
+ }
+ qlyInspect.setAsnCode(wkOrder.getCode()).setAsnId(wkOrder.getId());
+
+ return this.save(qlyInspect);
+ }
+
+ /**
+ * @author Ryan
+ * @date 2025/5/14
+ * @description: 璐ㄦ瀹℃牳纭
+ * @version 1.0
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R verifyComplate(Long id) {
+ if (Objects.isNull(id)) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ QlyInspect inspect = this.getById(id);
+ if (Objects.isNull(inspect)) {
+ throw new CoolException("璐ㄦ鍗曟嵁涓嶅瓨鍦紒锛�");
+ }
+ inspect.setIsptStatus(QlyIsptStatus.QLY_ISPT_STAS_DONE.val);
+ if (!this.saveOrUpdate(inspect)) {
+ throw new CoolException("鍗曟嵁淇敼澶辫触锛侊紒");
+ }
+ List<QlyIsptItem> items = qlyIsptItemService.selectIsptResult(new LambdaQueryWrapper<QlyIsptItem>().eq(QlyIsptItem::getIspectId, inspect.getId()));
+ if (items.isEmpty()) {
+ throw new CoolException("璐ㄦ鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
+ }
+
+ for (QlyIsptItem isptItem : items) {
+ if (isptItem.getSafeQty().compareTo(0.0) <= 0 && isptItem.getDisQty().compareTo(0.0) <= 0 ) {
+ continue;
+ }
+ WarehouseAreasItem item = warehouseAreasItemService.getById(isptItem.getRcptId());
+ if (Objects.isNull(item)) {
+ throw new CoolException("搴撳瓨鏄庣粏涓嶅瓨鍦紒锛�");
+ }
+ qlyIsptItemService.confirmReceipt(isptItem, item);
+ }
+
+ return R.ok("瀹℃牳瀹屾垚锛侊紒");
+ }
}
--
Gitblit v1.9.1