From 671b836ea629891889fad234c135f7e6f4b17745 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期一, 12 五月 2025 19:34:46 +0800 Subject: [PATCH] 质检功能优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java | 87 ++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 80 insertions(+), 7 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java index f4457a3..ddf7c51 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java @@ -8,17 +8,14 @@ import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.manager.controller.params.IsptItemsParams; -import com.vincent.rsf.server.manager.entity.QlyInspect; -import com.vincent.rsf.server.manager.entity.QlyInspectResult; +import com.vincent.rsf.server.manager.entity.*; import com.vincent.rsf.server.manager.enums.QlyIsptResult; import com.vincent.rsf.server.manager.mapper.QlyIsptItemMapper; -import com.vincent.rsf.server.manager.entity.QlyIsptItem; import com.vincent.rsf.server.manager.service.AsnOrderItemService; import com.vincent.rsf.server.manager.service.QlyInspectResultService; import com.vincent.rsf.server.manager.service.QlyInspectService; import com.vincent.rsf.server.manager.service.QlyIsptItemService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -40,6 +37,8 @@ private QlyInspectResultService qlyInspectResultService; @Autowired private QlyIsptItemService qlyIsptItemService; + @Autowired + private WarehouseAreasItemServiceImpl warehouseAreasItemService; /** * @param @@ -76,6 +75,7 @@ QlyInspectResult result = new QlyInspectResult(); result.setIsptId(item.getIspectId()) + .setRcptId(item.getRcptId()) .setIsptItemId(item.getId()); if (!Objects.isNull(item.getDisQty()) && item.getDisQty().compareTo(0.00) > 0) { result.setAnfme(item.getDisQty()) @@ -85,6 +85,7 @@ result = new QlyInspectResult(); result.setIsptId(item.getIspectId()) + .setRcptId(item.getRcptId()) .setIsptItemId(item.getId()); if (!Objects.isNull(item.getSafeQty()) && item.getSafeQty().compareTo(0.00) > 0) { result.setAnfme(item.getSafeQty()) @@ -104,10 +105,28 @@ .eq(QlyIsptItem::getId, item.getId()))) { throw new CoolException("鍗曟嵁鏄庣粏鏁伴噺淇敼澶辫触锛侊紒"); } + + WarehouseAreasItem orderItem = warehouseAreasItemService.getById(item.getRcptId()); + if (Objects.isNull(orderItem)) { + throw new CoolException("鏀惰揣鍗曟嵁涓嶅瓨鍦紒锛�"); + } + Double sum = item.getDisQty() + item.getSafeQty(); + orderItem.setIsptQty(sum); + + if (!warehouseAreasItemService.updateById(orderItem)) { + throw new CoolException("鏀惰揣鍖哄簱瀛樹俊鎭洿鏂板け璐ワ紒锛�"); + } + + if (Objects.isNull(orderItem.getIsptResult())) { + operateReceipt(item, orderItem); + } else { + + } } Set<Long> isptIds = isptItem.stream().map(QlyIsptItem::getIspectId).collect(Collectors.toSet()); - List<QlyInspectResult> items = qlyInspectResultService.list(new LambdaQueryWrapper<QlyInspectResult>().in(QlyInspectResult::getIsptId, isptIds)); + List<QlyInspectResult> items = qlyInspectResultService.list(new LambdaQueryWrapper<QlyInspectResult>() + .in(QlyInspectResult::getIsptId, isptIds)); Double sum = items.stream().mapToDouble(QlyInspectResult::getAnfme).sum(); if (sum.compareTo(0.00) > 0) { qlyInspectService.update(new LambdaUpdateWrapper<QlyInspect>() @@ -116,7 +135,56 @@ .eq(QlyInspect::getId, isptItem.stream().findFirst().get().getIspectId())); } +// qlyIsptItemService.pageByIsptResult(null, new QueryWrapper<QlyIsptItem>()) return true; + } + + /** + * @author Ryan + * @date 2025/5/12 + * @description: 璐ㄦ鍚庝慨鏀规敹璐у尯瀛樹俊鎭� + * @version 1.0 + */ + private void operateReceipt(QlyIsptItem item, WarehouseAreasItem orderItem) { + Double sum = item.getDisQty() + item.getSafeQty(); + if (sum.compareTo(orderItem.getAnfme()) >= 0) { + //瀹屾垚璐ㄦ,鍋氭洿鏂版搷浣� + if (item.getSafeQty().compareTo(0.0) > 0) { + orderItem.setIsptQty(item.getSafeQty()); + orderItem.setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val); + if (!warehouseAreasItemService.updateById(orderItem)) { + throw new CoolException("鏀惰揣鍖哄簱瀛樻槑缁嗘洿鏂板け璐ワ紒锛�"); + } + } + + if (item.getDisQty().compareTo(0.0) > 0) { + orderItem.setIsptQty(item.getDisQty()) + .setId(null) + .setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_DEFECT.val); + if (!warehouseAreasItemService.saveOrUpdate(orderItem)) { + throw new CoolException("鏀惰揣鍖哄簱瀛樻槑缁嗘洿鏂板け璐ワ紒锛�"); + } + } + } else { + //鏈畬鎴愬仛娣诲姞鎿嶄綔 + if (item.getSafeQty().compareTo(0.0) > 0) { + orderItem.setIsptQty(item.getSafeQty()) + .setId(null) + .setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val); + if (!warehouseAreasItemService.saveOrUpdate(orderItem)) { + throw new CoolException("鏀惰揣鍖哄簱瀛樻槑缁嗘洿鏂板け璐ワ紒锛�"); + } + } + + if (item.getDisQty().compareTo(0.0) > 0) { + orderItem.setIsptQty(item.getDisQty()) + .setId(null) + .setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_DEFECT.val); + if (!warehouseAreasItemService.saveOrUpdate(orderItem)) { + throw new CoolException("鏀惰揣鍖哄簱瀛樻槑缁嗘洿鏂板け璐ワ紒锛�"); + } + } + } } /** @@ -132,7 +200,7 @@ List<QlyIsptItem> records = page.getRecords(); for (int i = 0; i < records.size(); i++) { List<QlyInspectResult> results = qlyInspectResultService.list(new QueryWrapper<QlyInspectResult>() - .select("id, ispt_result, SUM(anfme) anfme, ispt_item_id, ispt_id") + .select("id, ispt_result, SUM(anfme) anfme, ispt_item_id, ispt_id, rcpt_id") .lambda() .eq(QlyInspectResult::getIsptItemId, records.get(i).getId()).groupBy(QlyInspectResult::getIsptResult)); if (!results.isEmpty()) { @@ -152,6 +220,11 @@ @Override public IPage<QlyIsptItem> pageByIsptResult(PageParam<QlyIsptItem, BaseParam> pageParam, QueryWrapper<QlyIsptItem> queryWrapper) { - return this.baseMapper.pageByWrapper(pageParam, queryWrapper); + if (Objects.isNull(pageParam)) { + PageParam<QlyIsptItem, BaseParam> param = new PageParam<>(); + return this.baseMapper.selectPage(param, queryWrapper); + } else { + return this.baseMapper.pageByWrapper(pageParam, queryWrapper); + } } } -- Gitblit v1.9.1