From 4797d5d1c949ab17fb7a633498a1530dd4777a7f Mon Sep 17 00:00:00 2001 From: Vinjor Date: Wed, 4 Dec 2024 09:48:07 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B3=E8=AF=B7=E9=85=8D=E4=BB=B6=E5=8D=95?= =?UTF-8?q?=E3=80=81=E5=AE=A1=E6=A0=B8=E9=85=8D=E4=BB=B6=E5=8D=95=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E6=94=B9=E9=80=A0=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/DlTicketWaresController.java | 2 +- .../yudao/module/tickets/entity/DlTwItem.java | 12 +- .../impl/DlTicketWaresServiceImpl.java | 131 +++++++++--------- .../service/impl/DlTwItemServiceImpl.java | 9 ++ 4 files changed, 85 insertions(+), 69 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTicketWaresController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTicketWaresController.java index 1df612e4..518adfc3 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTicketWaresController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTicketWaresController.java @@ -62,7 +62,7 @@ public class DlTicketWaresController { } /** - * 新增、修改 + * 维修工新增配件申请单 * * @author 小李 * @date 12:14 2024/10/15 diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/entity/DlTwItem.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/entity/DlTwItem.java index fb1b0351..a739f412 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/entity/DlTwItem.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/entity/DlTwItem.java @@ -2,17 +2,13 @@ package cn.iocoder.yudao.module.tickets.entity; import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; -import java.io.Serializable; -import java.util.Date; - /** - * 工单配件申请/退回子表 + * 工单配件申请单配件明细表 * * @author 小李 * @date 11:49 2024/10/15 @@ -43,6 +39,12 @@ public class DlTwItem extends TenantBaseDO { /** 配件状态:使用字典yes_no,1通过,0没通过 */ private String waresStatus; + /** 配件添加人id */ + private Long addUserId; + /** 配件添加人姓名 */ + private String addUserName; + /** 是否仓管添加的(0否|1是) */ + private Boolean ifHouseAdd; /** 审核人ID(system_users的ID) */ private Long handleId; diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTicketWaresServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTicketWaresServiceImpl.java index 78027f9f..e9c4bf4b 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTicketWaresServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTicketWaresServiceImpl.java @@ -223,6 +223,10 @@ public class DlTicketWaresServiceImpl extends ServiceImpl twItems = twItemService.listByIds(twItemIds); // 取所有的配件信息 List wareIds = twItems.stream().map(DlTwItem::getWaresId).collect(Collectors.toList()); - List repairWares = repairWaresService.listByIds(wareIds); // 更新配件申请表子表 List newTwitems = twItemIds.stream().map(item -> { DlTwItem twItem = new DlTwItem(); @@ -307,68 +310,70 @@ public class DlTicketWaresServiceImpl extends ServiceImpl().set(DlTicketWares::getStatus, "02").eq(DlTicketWares::getId, respVO.getId())); } - // 更新维修工单子表 - if (status.equals("01")) { - DlTicketWares ticketWares = baseMapper.selectById(respVO.getId()); - List titems = repairTitemService.list(new LambdaQueryWrapper().and(i -> { - i.in(DlRepairTitem::getTicketId, ticketWares.getTicketId()) - .eq(DlRepairTitem::getItemType, "02"); - })); - // 要修改的 - List updateTitems = titems.stream().filter(item -> wareIds.contains(item.getPartId())).collect(Collectors.toList()); - // 修改 - if (CollectionUtil.isNotEmpty(updateTitems)) { - List newTitems = updateTitems.stream().map(item -> { - DlRepairTitem titem = new DlRepairTitem(); - titem.setId(item.getId()); - DlTwItem twItem = allTwitems.stream().filter(i -> i.getWaresId().equals(item.getPartId())).findFirst().orElse(null); - if (twItem != null) { - titem.setItemCount(item.getItemCount() + twItem.getWaresCount()); - titem.setItemMoney(item.getItemPrice().multiply(BigDecimal.valueOf(titem.getItemCount())).multiply(item.getItemDiscount())); - } - return titem; - }).collect(Collectors.toList()); - repairTitemService.updateBatchById(newTitems); - } - // 要新增的 - if (updateTitems.size() < wareIds.size()) { - List titemIds = updateTitems.stream().map(DlRepairTitem::getPartId).collect(Collectors.toList()); - List newWares = repairWares.stream().filter(item -> !titemIds.contains(item.getId())).collect(Collectors.toList()); - // 新增 - List newTitems = newWares.stream().map(item -> { - DlRepairTitem titem = new DlRepairTitem(); - titem.setTicketId(ticketWares.getTicketId()); - titem.setItemType("02"); - titem.setItemName(item.getName()); - DlTwItem twItem = allTwitems.stream().filter(i -> i.getWaresId().equals(item.getId())).findFirst().orElse(null); - titem.setItemCount(twItem != null ? twItem.getWaresCount() : 0); - titem.setItemUnit(item.getUnit()); - titem.setItemPrice((item.getPrice() != null) ? item.getPrice() : BigDecimal.ZERO); - titem.setItemDiscount(BigDecimal.ONE); - titem.setItemMoney(titem.getItemPrice().multiply(BigDecimal.valueOf(titem.getItemCount())).multiply(titem.getItemDiscount())); - titem.setRepairIds(String.valueOf(ticketWares.getRepairId())); - titem.setRepairNames(ticketWares.getRepairName()); - titem.setSaleId(ticketWares.getAdviserId()); - titem.setSaleName(ticketWares.getAdviserName()); - titem.setPartId(item.getId()); - titem.setItemStatus("04"); - titem.setRemark(twItem != null ? twItem.getRemark() : null); - return titem; - }).collect(Collectors.toList()); - repairTitemService.saveBatch(newTitems); - } - // 更新维修工单主表 - boolean flag = repairTicketsService.computeTicket(ticketWares.getTicketId()); - if (!flag) { - throw exception0(500, "重新计算工单错误"); - } - // 发送通过的消息给仓库 - RoleReqDTO roleInfo = roleApi.getRoleInfo(RepairRoleEnum.WAREHOUSE.getCode()); - List ids = permissionApi.getUserIdByRoleId(roleInfo.getId()); - if (CollectionUtil.isNotEmpty(ids)) { - ids.forEach(id -> repairWorkerService.sentMessage(id, "您有新的配件申请单需要处理")); - } - } + /* 审核配件申请单暂时不操作工单子表 */ +// // 更新维修工单子表 +// List repairWares = repairWaresService.listByIds(wareIds); +// if (status.equals("01")) { +// DlTicketWares ticketWares = baseMapper.selectById(respVO.getId()); +// List titems = repairTitemService.list(new LambdaQueryWrapper().and(i -> { +// i.in(DlRepairTitem::getTicketId, ticketWares.getTicketId()) +// .eq(DlRepairTitem::getItemType, "02"); +// })); +// // 要修改的 +// List updateTitems = titems.stream().filter(item -> wareIds.contains(item.getPartId())).collect(Collectors.toList()); +// // 修改 +// if (CollectionUtil.isNotEmpty(updateTitems)) { +// List newTitems = updateTitems.stream().map(item -> { +// DlRepairTitem titem = new DlRepairTitem(); +// titem.setId(item.getId()); +// DlTwItem twItem = allTwitems.stream().filter(i -> i.getWaresId().equals(item.getPartId())).findFirst().orElse(null); +// if (twItem != null) { +// titem.setItemCount(item.getItemCount() + twItem.getWaresCount()); +// titem.setItemMoney(item.getItemPrice().multiply(BigDecimal.valueOf(titem.getItemCount())).multiply(item.getItemDiscount())); +// } +// return titem; +// }).collect(Collectors.toList()); +// repairTitemService.updateBatchById(newTitems); +// } +// // 要新增的 +// if (updateTitems.size() < wareIds.size()) { +// List titemIds = updateTitems.stream().map(DlRepairTitem::getPartId).collect(Collectors.toList()); +// List newWares = repairWares.stream().filter(item -> !titemIds.contains(item.getId())).collect(Collectors.toList()); +// // 新增 +// List newTitems = newWares.stream().map(item -> { +// DlRepairTitem titem = new DlRepairTitem(); +// titem.setTicketId(ticketWares.getTicketId()); +// titem.setItemType("02"); +// titem.setItemName(item.getName()); +// DlTwItem twItem = allTwitems.stream().filter(i -> i.getWaresId().equals(item.getId())).findFirst().orElse(null); +// titem.setItemCount(twItem != null ? twItem.getWaresCount() : 0); +// titem.setItemUnit(item.getUnit()); +// titem.setItemPrice((item.getPrice() != null) ? item.getPrice() : BigDecimal.ZERO); +// titem.setItemDiscount(BigDecimal.ONE); +// titem.setItemMoney(titem.getItemPrice().multiply(BigDecimal.valueOf(titem.getItemCount())).multiply(titem.getItemDiscount())); +// titem.setRepairIds(String.valueOf(ticketWares.getRepairId())); +// titem.setRepairNames(ticketWares.getRepairName()); +// titem.setSaleId(ticketWares.getAdviserId()); +// titem.setSaleName(ticketWares.getAdviserName()); +// titem.setPartId(item.getId()); +// titem.setItemStatus("04"); +// titem.setRemark(twItem != null ? twItem.getRemark() : null); +// return titem; +// }).collect(Collectors.toList()); +// repairTitemService.saveBatch(newTitems); +// } +// // 更新维修工单主表 +// boolean flag = repairTicketsService.computeTicket(ticketWares.getTicketId()); +// if (!flag) { +// throw exception0(500, "重新计算工单错误"); +// } +// // 发送通过的消息给仓库 +// RoleReqDTO roleInfo = roleApi.getRoleInfo(RepairRoleEnum.WAREHOUSE.getCode()); +// List ids = permissionApi.getUserIdByRoleId(roleInfo.getId()); +// if (CollectionUtil.isNotEmpty(ids)) { +// ids.forEach(id -> repairWorkerService.sentMessage(id, "您有新的配件申请单需要处理")); +// } +// } // 通知维修工 DlTicketWares ticketWares = baseMapper.selectById(respVO.getId()); repairWorkerService.sentMessage(ticketWares.getRepairId(), "您有新的配件申请单" + (status.equals("01") ? "审批通过了" : "被驳回了")); diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java index 90e50c95..db87ca04 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java @@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.tickets.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.project.entity.RepairWares; import cn.iocoder.yudao.module.project.service.RepairWaresService; import cn.iocoder.yudao.module.system.api.dict.DictDataApi; @@ -101,6 +103,7 @@ public class DlTwItemServiceImpl extends ServiceImpl **/ @Override public void addTwi(AddTwiVO addTwiVO){ + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); // 构建子表数据 if (CollectionUtil.isEmpty(addTwiVO.getItems())){ throw exception0(500, "请选择配件"); @@ -125,6 +128,9 @@ public class DlTwItemServiceImpl extends ServiceImpl twItem.setWaresId(item.getId()); twItem.setWaresName(item.getName()); twItem.setWaresCount(item.getCount()); + twItem.setAddUserId(loginUser.getId()); + twItem.setAddUserName(loginUser.getInfo().get("nickname")); + twItem.setIfHouseAdd(false); twItem.setWaresAlreadyCount(0); twItem.setWaresStatus(""); twItem.setRemark(item.getRemark()); @@ -152,6 +158,9 @@ public class DlTwItemServiceImpl extends ServiceImpl twItem.setWaresId(item.getId()); twItem.setWaresName(item.getName()); twItem.setWaresCount(item.getCount()); + twItem.setAddUserId(loginUser.getId()); + twItem.setAddUserName(loginUser.getInfo().get("nickname")); + twItem.setIfHouseAdd(false); twItem.setWaresAlreadyCount(0); twItem.setWaresStatus(""); twItem.setRemark(item.getRemark());