From b68cf299e68473295dba11d94cc2e70a19dc673a Mon Sep 17 00:00:00 2001 From: verou <857149855@qq.com> Date: 星期一, 31 三月 2025 15:50:06 +0800 Subject: [PATCH] Merge branch 'front' into devlop --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java | 74 ++++++++++++++++++++++++++++++++++++ 1 files changed, 73 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..1348ba0 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 @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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; @@ -16,13 +17,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 +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,71 @@ } return R.ok("淇濆瓨鎴愬姛锛侊紒"); } + + /** + * @author Ryan + * @description 鑾峰彇鏈川妫�鍗曟嵁 + * @param + * @return + * @time 2025/3/31 10:12 + */ + + @Override + public List<AsnOrder> getUnInspect() { + List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getStatus, 1).eq(AsnOrder::getNtyStatus, 0)); + return asnOrders; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public R saveSelected(IsptOrderParam param) { + 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()) { + 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) { + 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()); + /**鑾峰彇鍗曟嵁鏄庣粏*/ + 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()) + .setRcptQty(orderItem.getQty()) + .setDlyQty(orderItem.getAnfme()); + items.add(isptItem); + } + if (!qlyIsptItemService.saveBatch(items)) { + throw new CoolException("鏄庣粏淇濆瓨澶辫触锛侊紒"); + } + } + if (!this.saveBatch(qlyInspects)) { + throw new CoolException("璐ㄦ鍗曚繚瀛樺け璐ワ紒锛�"); + } + return R.ok("淇濆瓨鎴愬姛锛侊紒"); + } } -- Gitblit v1.9.1