From 30b8e8d11b4fddc042da1944a3ab3354c40da37e Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 19 Nov 2025 13:45:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BackChangeServiceImpl.java | 41 ++++++++++++++++--- .../mapper/material/back/BackChangeMapper.xml | 4 +- 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/back/service/impl/BackChangeServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/back/service/impl/BackChangeServiceImpl.java index 87b2cd1..cdf1e9f 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/back/service/impl/BackChangeServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/back/service/impl/BackChangeServiceImpl.java @@ -20,6 +20,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; @@ -299,16 +300,41 @@ public class BackChangeServiceImpl implements BackChangeService { @Transactional(rollbackFor = Exception.class) public AjaxResult approve(BackCsDeviceDetails backCsDeviceDetails) { try { + int num = 0; backCsDeviceDetails.setUpdateBy(SecurityUtils.getLoginUser().getUserid().toString()); - // 修改主任务状态为通过或驳回 - int num = mapper.approve(backCsDeviceDetails); - if (num < 1) { - throw new RuntimeException("修改主任务失败"); - } // 如果通过,则需要修改设备具体库存及维修数量 if ("1".equals(backCsDeviceDetails.getTaskStatus())) { // 根据id查询设备详情表数据 List devDetailsList = mapper.getDevDetailsById(backCsDeviceDetails); + if (CollectionUtils.isNotEmpty(devDetailsList)) { + // 根据devType去查询装备或工具详情 + for (BackCsDeviceDetails csDeviceDetails : devDetailsList) { + BackCsDeviceDetails devDetails = new BackCsDeviceDetails(); + if (StringUtils.isNotBlank(csDeviceDetails.getDevType()) && "1".equals(csDeviceDetails.getDevType())) { + if ("/".equals(csDeviceDetails.getDevCode())) { + csDeviceDetails.setDevCode(null); + } + devDetails = mapper.getTypeMaDevInfo(csDeviceDetails); + } else if (StringUtils.isNotBlank(csDeviceDetails.getDevType()) && "2".equals(csDeviceDetails.getDevType())) { + if ("/".equals(csDeviceDetails.getDevCode())) { + csDeviceDetails.setDevCode(null); + } + devDetails = mapper.getTypeToolInfo(csDeviceDetails); + } + if (devDetails != null) { + csDeviceDetails.setCategory(StringUtils.isNotBlank(devDetails.getCategory()) ? devDetails.getCategory() : ""); + csDeviceDetails.setTypeName(StringUtils.isNotBlank(devDetails.getTypeName()) ? devDetails.getTypeName() : ""); + csDeviceDetails.setTypeModelName(StringUtils.isNotBlank(devDetails.getTypeModelName()) ? devDetails.getTypeModelName() : ""); + csDeviceDetails.setManageType(StringUtils.isNotBlank(devDetails.getManageType()) ? devDetails.getManageType() : ""); + csDeviceDetails.setDevCode(StringUtils.isNotBlank(devDetails.getDevCode()) ? devDetails.getDevCode() : ""); + csDeviceDetails.setUseNum(devDetails.getUseNum()); + } + // 判断在用数量是否有为0的,若有,不予审核通过 + if (csDeviceDetails.getUseNum().compareTo(BigDecimal.ZERO) == 0) { + return AjaxResult.warn("该条单据中存在在用数量为0的设备,无法审核通过,请驳回后进行修改"); + } + } + } if (CollectionUtils.isNotEmpty(devDetailsList)) { for (BackCsDeviceDetails csDeviceDetails : devDetailsList) { // 装备 @@ -362,6 +388,11 @@ public class BackChangeServiceImpl implements BackChangeService { } } } + // 修改主任务状态为通过或驳回 + num = mapper.approve(backCsDeviceDetails); + if (num < 1) { + throw new RuntimeException("修改主任务失败"); + } } catch (RuntimeException e) { log.error(e.getMessage()); throw new RuntimeException("审核失败"); diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/back/BackChangeMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/back/BackChangeMapper.xml index 468fbf4..9b58692 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/back/BackChangeMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/back/BackChangeMapper.xml @@ -167,9 +167,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND mdi.code like concat('%',#{devCode},'%') - - AND mdi.code like concat('%',#{devCode},'%') - AND mdi.on_company = #{companyId} @@ -177,6 +174,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND cd.pro_code = #{proCode} + GROUP BY mdi.code UNION ALL