From a91cb9af0a8d08b578955777932b5962aa2f67df Mon Sep 17 00:00:00 2001 From: z Date: Fri, 7 Mar 2025 13:10:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A5=E5=BA=93=E6=9F=A5=E8=AF=A2=E4=BC=98?= =?UTF-8?q?=E5=8C=96=EF=BC=8C=E8=A3=85=E9=85=8D=E6=B4=BE=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=85=81=E8=AE=B8=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storagelog/StorageLogServiceImpl.java | 36 ++++++++++++------- .../src/views/heli/plantask/edit.vue | 2 -- .../src/views/heli/taskdispatch/detail.vue | 9 +++-- 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogServiceImpl.java index a9726e9..1e7d21f 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogServiceImpl.java @@ -22,6 +22,8 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.*; +import java.util.stream.Collectors; + import com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.*; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; @@ -126,20 +128,28 @@ public class StorageLogServiceImpl implements StorageLogService { public PageResult getStorageNowPageGroupMaterial(StorageLogPageReqVO pageReqVO) { PageResult pageResult = storageMaterialMapper.selectMaterialGroupNow(pageReqVO); if (ObjectUtil.isNotEmpty(pageReqVO.getWhId())){ - for (StorageMaterialDO storageMaterialDO : pageResult.getList()) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(StorageLogNowDO::getWhId,pageReqVO.getWhId()); - wrapper.eq(StorageLogNowDO::getMatCode,storageMaterialDO.getMatCode()); - List list = storageLogNowMapper.selectList(wrapper); - if (list!=null&&list.size()>0){ - storageMaterialDO.setMatRest(list.stream() - .map(StorageLogNowDO::getStorageOkQty) - .filter(Objects::nonNull) // 确保过滤掉 null 值 - .reduce(BigDecimal.ZERO, BigDecimal::add)); - }else { - storageMaterialDO.setMatRest(BigDecimal.ZERO); + // 获取所有物料编码 + List matCodes = pageResult.getList().stream() + .map(StorageMaterialDO::getMatCode) + .collect(Collectors.toList()); + // 批量查询库存日志 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(StorageLogNowDO::getWhId, pageReqVO.getWhId()) + .in(StorageLogNowDO::getMatCode, matCodes); + List logList = storageLogNowMapper.selectList(wrapper); - } + // 将库存日志按物料编码分组 + Map> logMap = logList.stream() + .collect(Collectors.groupingBy(StorageLogNowDO::getMatCode)); + + // 计算每个物料的剩余数量并设置到对应的 StorageMaterialDO 对象中 + for (StorageMaterialDO storageMaterialDO : pageResult.getList()) { + List logs = logMap.getOrDefault(storageMaterialDO.getMatCode(), Collections.emptyList()); + BigDecimal matRest = logs.stream() + .map(StorageLogNowDO::getStorageOkQty) + .filter(Objects::nonNull) // 确保过滤掉 null 值 + .reduce(BigDecimal.ZERO, BigDecimal::add); + storageMaterialDO.setMatRest(matRest); } } return pageResult; diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/plantask/edit.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/plantask/edit.vue index 81374ee..e7f08eb 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/plantask/edit.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/plantask/edit.vue @@ -378,9 +378,7 @@ const handleSelectionChange = (row: any) => { } }else if (row.length== bomDetails.length) { for (let i = 0; i < bomDetails.length; i++) { - if ( bomDetails[i].owner=='' ||bomDetails[i].owner==null){ bomDetails[i].chkboxEnable=true - } } }else { for (let i = 0; i < bomDetails.length; i++) { diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detail.vue index 4c93336..7709988 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detail.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detail.vue @@ -933,8 +933,6 @@ const submitForm = async (operate) => { } } - - } for (let i = 0; i < formData.value.taskDispatchDetails.length-1; i++) { for (let j = i+1; j < formData.value.taskDispatchDetails.length; j++) { @@ -943,6 +941,12 @@ const submitForm = async (operate) => { return } } + } + for (let i = 0; i < formData.value.taskDispatchDetails.length; i++) { + if (formData.value.taskDispatchDetails[i].sort!=i+1){ + message.error("派工工序的顺序号不允许跳数字,请确认!") + return + } } const data = formData.value as unknown as TaskDispatchApi.TaskDispatchVO let dataId = await TaskDispatchApi.operateTaskDispatch(data) @@ -988,6 +992,7 @@ const onAddItem = () => { summary: undefined, status: 1, procedureStatus: 0, + beginProduce: 0, dispatchId: undefined, } row.amount = formData.value.projectSubAmount