From f5c75d7506272817f3d70574f97f1038fe666e2f Mon Sep 17 00:00:00 2001 From: hayu <1604366271@qq.com> Date: Sun, 16 Nov 2025 20:33:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=B4=E4=BF=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repair/controller/RepairController.java | 11 ++ .../material/repair/mapper/RepairMapper.java | 14 ++ .../repair/service/RepairService.java | 7 + .../service/impl/RepairServiceImpl.java | 125 +++++++++++++++--- .../mapper/material/repair/RepairMapper.xml | 44 ++++-- 5 files changed, 174 insertions(+), 27 deletions(-) diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/controller/RepairController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/controller/RepairController.java index 5e2b252..7b49f29 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/controller/RepairController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/controller/RepairController.java @@ -50,6 +50,17 @@ public class RepairController extends BaseController { return service.addRepairData(bean); } + /** + * 修改维修申请 + * @param bean + * @return + */ + @ApiOperation(value = "修改维修申请") + @PostMapping("/updateRepairData") + public AjaxResult updateRepairData(@RequestBody ToBeRepair bean) { + return service.updateRepairData(bean); + } + /** * 查询维修列表 */ diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java index ccb43e1..820aa64 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java @@ -107,4 +107,18 @@ public interface RepairMapper { * @return */ int updateMaDevInfo(ToBeRepair toBeRepair); + + /** + * 删除设备变更信息 + * @param bean + * @return + */ + int deleteChangeDetailsByChangeId(ToBeRepair bean); + + /** + * 获取设备信息 + * @param toBeRepair + * @return + */ + ToBeRepair selectMaDevInfoByTypeIdAndCode(ToBeRepair toBeRepair); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/service/RepairService.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/service/RepairService.java index 12ed057..c2b4a8f 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/service/RepairService.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/service/RepairService.java @@ -50,4 +50,11 @@ public interface RepairService { * @return */ AjaxResult auditData(ToBeRepair bean); + + /** + * 修改维修数据 + * @param bean + * @return + */ + AjaxResult updateRepairData(ToBeRepair bean); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java index 6b2f666..2e6aebd 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java @@ -1,6 +1,7 @@ package com.bonus.material.repair.service.impl; +import com.bonus.common.biz.domain.BmFileInfo; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; @@ -94,6 +95,53 @@ public class RepairServiceImpl implements RepairService { } } + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult updateRepairData(ToBeRepair bean) { + try { + if (bean.getChangeId()==null){ + throw new Exception("缺少任务ID"); + } + if (bean.getToBeRepairList().size() <= 0) { + return AjaxResult.error("请添加维修数据"); + } + String username = SecurityUtils.getLoginUser().getSysUser().getNickName(); + //先删除详情中被驳回的数据 + int re1 = mapper.deleteChangeDetailsByChangeId(bean); + if (re1 < 1) { + throw new Exception("删除设备详情失败"); + } + for (ToBeRepair toBeRepair : bean.getToBeRepairList()) { + if (!StringHelper.isNullOrEmptyString(toBeRepair.getStatus()) && "通过".equals(toBeRepair.getStatus())){ + //过滤掉通过的数据 + continue; + } + toBeRepair.setChangeId(bean.getChangeId()); + toBeRepair.setCreateUser(username); + if (!StringHelper.isNullOrEmptyString(toBeRepair.getIsScrap())) { + if (toBeRepair.getBmFileInfos()!=null && toBeRepair.getBmFileInfos().size() > 0) { + if ("0".equals(toBeRepair.getIsScrap())) { + toBeRepair.setRepairUrl(toBeRepair.getBmFileInfos().get(0).getFileUrl()); + } else { + toBeRepair.setScrapUrl(toBeRepair.getBmFileInfos().get(0).getFileUrl()); + } + } + } else { + throw new Exception("缺少合格状态数据"); + } + int res = mapper.addRepairData(toBeRepair); + if (res <= 0) { + throw new Exception("添加设备详情失败"); + } + } + return AjaxResult.success("修改成功"); + + } catch (Exception e) { + e.printStackTrace(); + return AjaxResult.error("修改失败"); + } + } + @Override public List getRepairList(ToBeRepair bean) { try { @@ -101,37 +149,49 @@ public class RepairServiceImpl implements RepairService { for (ToBeRepair toBeRepair : list) { List detailsList = mapper.getDetailsList(toBeRepair); if (detailsList != null && !detailsList.isEmpty()) { - // 存在审核中 - boolean hasZero = false; - // 是否全部驳回 - boolean allTwo = true; + boolean has0 = false; + boolean has1 = false; + boolean has2 = false; for (ToBeRepair detail : detailsList) { String audit = detail.getAuditStatus(); if ("0".equals(audit)) { - hasZero = true; + has0 = true; } - if (!"2".equals(audit)) { - allTwo = false; + if ("1".equals(audit)) { + has1 = true; + } + if ("2".equals(audit)) { + has2 = true; } } - // 规则判断 - if (hasZero) { + // === 状态判断 === + if (has0 && !has1 && !has2) { + // 1. 全部为 0 + toBeRepair.setStatus("待审核"); + } else if (!has0 && has1 && !has2) { + // 2. 全部为 1 + toBeRepair.setStatus("全部通过"); + } else if (!has0 && !has1 && has2) { + // 3. 全部为 2 + toBeRepair.setStatus("全部驳回"); + } else if (has0 && (has1 || has2)) { + // 4. 有 0 且有其他状态(1 或 2) toBeRepair.setStatus("审核中"); - } else if (allTwo) { - toBeRepair.setStatus("已驳回"); + } else if (!has0 && has1 && has2) { + // 5. 无 0,有 1 且有 2 + toBeRepair.setStatus("驳回待处理"); } else { - toBeRepair.setStatus("已审核"); + toBeRepair.setStatus(""); } } } - + // 状态过滤 String statusFilter = bean.getStatus(); if (statusFilter != null && !"".equals(statusFilter)) { list = list.stream() .filter(item -> statusFilter.equals(item.getStatus())) .collect(Collectors.toList()); } - return list; } catch (Exception e) { e.printStackTrace(); @@ -139,7 +199,6 @@ public class RepairServiceImpl implements RepairService { } } - @Override @Transactional(rollbackFor = Exception.class) public AjaxResult deleteRepairList(ToBeRepair bean) { @@ -165,7 +224,19 @@ public class RepairServiceImpl implements RepairService { @Override public List getRepairDetailsList(ToBeRepair bean) { try { - return mapper.getRepairDetailsList(bean); + List list = mapper.getRepairDetailsList(bean); + if (list.size()>0){ + for (ToBeRepair toBeRepair : list){ + if (!StringHelper.isNullOrEmptyString(toBeRepair.getUrl())){ + List bmFileInfos = new ArrayList<>(); + BmFileInfo fileInfo = new BmFileInfo(); + fileInfo.setFileUrl(toBeRepair.getUrl()); + bmFileInfos.add(fileInfo); + toBeRepair.setBmFileInfos(bmFileInfos); + } + } + } + return list; } catch (Exception e) { e.printStackTrace(); return new ArrayList<>(); @@ -182,6 +253,28 @@ public class RepairServiceImpl implements RepairService { String username = SecurityUtils.getLoginUser().getSysUser().getNickName(); Long userId = SecurityUtils.getLoginUser().getUserid(); for (ToBeRepair toBeRepair : bean.getToBeRepairList()) { + //查询设备是否已经处理过 + if ("编码管理".equals(toBeRepair.getManageMode())){ + //1、如果是编码管理,查询状态是否为维修状态 + if ("装备".equals(toBeRepair.getType())){ + ToBeRepair bean1 = mapper.selectMaDevInfoByTypeIdAndCode(toBeRepair); + if (bean1==null || !"5".equals(bean1.getStatus())){ + return AjaxResult.error(toBeRepair.getCode()+"编码设备已经处理过"); + } + } else if ("工具".equals(toBeRepair.getType())){ + ToBeRepair bean1 = mapper.selectByTypeIdAndCode(toBeRepair); + if (bean1==null || !"2".equals(bean1.getStatus())){ + return AjaxResult.error(toBeRepair.getCode()+"编码设备已经处理过"); + } + } + } else if ("数量管理".equals(toBeRepair.getManageMode())){ + //2、如果是数量管理,查询剩余的维修数量是否够 + //todo 目前数量管理的设备都是工具 + ToBeRepair bean1 = mapper.selectByTypeIdAndCode(toBeRepair); + if (bean1==null || bean1.getRepairNum().compareTo(toBeRepair.getRepairNum())<0){ + return AjaxResult.error(toBeRepair.getTypeModelName()+"剩余维修设备数量不足"); + } + } if (!StringHelper.isNullOrEmptyString(toBeRepair.getAuditStatus())){ toBeRepair.setCreateUser(username); int res = mapper.auditData(toBeRepair); diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/repair/RepairMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/repair/RepairMapper.xml index d6378f1..5b4ef5a 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/repair/RepairMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/repair/RepairMapper.xml @@ -116,6 +116,13 @@ where type_id = #{typeId} and code=#{code} + + update cs_device_change_details + set del_flag = '1' + where change_id = #{changeId} + and review_status = '2' + + + \ No newline at end of file