From 4a90687814372a45f55626625c2fe10857e6d08c Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Fri, 1 Nov 2024 20:21:58 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E5=92=8C=E5=88=A0=E9=99=A4=E5=B7=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/DlRepairTicketsController.java | 14 ++++++++++++++ .../service/DlRepairTicketsService.java | 9 +++++++++ .../impl/DlRepairTicketsServiceImpl.java | 18 ++++++++++++++++++ .../src/main/resources/application-local.yaml | 2 ++ 4 files changed, 43 insertions(+) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java index 93cc3124..41fe1162 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java @@ -348,5 +348,19 @@ public class DlRepairTicketsController { dlRepairTicketsService.updateTicket(respVO); return CommonResult.ok(); } + + /** + * 删除工单 + * + * @author 小李 + * @date 20:05 2024/11/1 + * @param id 工单ID + **/ + @DeleteMapping("/remove") + @Operation(summary = "删除工单") + public CommonResult removeTicketById(@RequestParam("id") String id) { + dlRepairTicketsService.removeTicketById(id); + return CommonResult.ok(); + } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java index a29750f8..97151564 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java @@ -226,4 +226,13 @@ public interface DlRepairTicketsService extends IService { * @param respVO 请求对象 **/ void updateTicket(DlRepairTicketsRespVO respVO); + + /** + * 删除工单 + * + * @author 小李 + * @date 20:05 2024/11/1 + * @param id 工单ID + **/ + void removeTicketById(String id); } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java index 247cae51..f8798a7a 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java @@ -1528,6 +1528,24 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl().eq(RepairOrderInfo::getGoodsId, id)); + // 删除工单 + baseMapper.deleteById(id); + // 删除工单子表 + titemService.remove(new LambdaQueryWrapper().eq(DlRepairTitem::getTicketId, id)); + } } diff --git a/yudao-server/src/main/resources/application-local.yaml b/yudao-server/src/main/resources/application-local.yaml index 314f6e42..1b9cd8ce 100644 --- a/yudao-server/src/main/resources/application-local.yaml +++ b/yudao-server/src/main/resources/application-local.yaml @@ -56,6 +56,8 @@ spring: # url: jdbc:postgresql://127.0.0.1:5432/postgres # OpenGauss 连接的示例 username: lanan_dev password: lighting@2024 +# username: lanan +# password: 123456 # username: sa # SQL Server 连接的示例 # password: Yudao@2024 # SQL Server 连接的示例 # username: SYSDBA # DM 连接的示例 From 6b4ec9c046a8f703306f5d87569c44d5b8e27563 Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Sat, 2 Nov 2024 16:41:02 +0800 Subject: [PATCH 2/3] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DlRepairTicketsServiceImpl.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java index f8798a7a..50c32faa 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java @@ -1178,10 +1178,13 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl ids = list.stream().map(DlTicketWares::getId).collect(Collectors.toList()); - List twItems = twItemService.list(new LambdaQueryWrapper().and(item -> { - item.in(DlTwItem::getTwId, ids) - .apply("wares_already_count < wares_count"); - })); + List twItems = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(ids)){ + twItems = twItemService.list(new LambdaQueryWrapper().and(item -> { + item.in(DlTwItem::getTwId, ids) + .apply("wares_already_count < wares_count"); + })); + } if (CollectionUtil.isNotEmpty(twItems)) { // 更新工单子表(主要是把已领料的字段同步给工单配件的数量字段) // 查询工单子表(三个查询条件,属于那个工单,属于配件类型,属于需要改变的(即申请表的已领取数量小于申请数量的)) @@ -1192,10 +1195,11 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl finalTwItems = twItems; List AllItems = items.stream().map(item -> { DlRepairTitem titem = new DlRepairTitem(); titem.setId(item.getId()); - List wares = twItems.stream().filter(i -> i.getWaresId().equals(item.getPartId())).collect(Collectors.toList()); + List wares = finalTwItems.stream().filter(i -> i.getWaresId().equals(item.getPartId())).collect(Collectors.toList()); int sum = wares.stream().mapToInt(DlTwItem::getWaresAlreadyCount).sum(); titem.setItemCount(sum); BigDecimal discount = item.getItemDiscount() == null ? BigDecimal.ONE : item.getItemDiscount(); From 05696bff5e4a7599c39bad23429fc029ee1feec5 Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Sat, 2 Nov 2024 16:52:31 +0800 Subject: [PATCH 3/3] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DlRepairTicketsServiceImpl.java | 127 +++++++++--------- 1 file changed, 62 insertions(+), 65 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java index 50c32faa..e7720842 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java @@ -217,7 +217,6 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl list = customerService.list(new LambdaQueryWrapper().eq(CustomerMain::getPhoneNumber, customerAndCarVO.getUserInfo().getPhoneNumber())); - if (CollectionUtil.isNotEmpty(list)){ + if (CollectionUtil.isNotEmpty(list)) { throw exception0(500, "电话号码重复"); } customerService.save(customerAndCarVO.getUserInfo()); // 如果新增了数据,id没有回填 - if (ObjectUtil.isEmpty(customerAndCarVO.getUserInfo().getId())){ + if (ObjectUtil.isEmpty(customerAndCarVO.getUserInfo().getId())) { CustomerMain byPhoneNumber = customerService.getOne(new LambdaQueryWrapper().eq(CustomerMain::getPhoneNumber, customerAndCarVO.getUserInfo().getPhoneNumber())); customerAndCarVO.getUserInfo().setId(byPhoneNumber.getId()); } @@ -469,12 +468,12 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl list = carMainService.list(new LambdaQueryWrapper().eq(CarMain::getLicenseNumber, customerAndCarVO.getCarInfo().getLicenseNumber())); - if (CollectionUtil.isNotEmpty(list)){ + if (CollectionUtil.isNotEmpty(list)) { throw exception0(500, "车牌重复"); } carMainService.createCarMain(customerAndCarVO.getCarInfo()); // 如果新增了数据,id没有回填 - if (ObjectUtil.isEmpty(customerAndCarVO.getCarInfo().getId())){ + if (ObjectUtil.isEmpty(customerAndCarVO.getCarInfo().getId())) { CarMain byLicenseNumber = carMainService.getOne(new LambdaQueryWrapper().eq(CarMain::getLicenseNumber, customerAndCarVO.getCarInfo().getLicenseNumber())); customerAndCarVO.getCarInfo().setId(byLicenseNumber.getId()); } @@ -514,7 +513,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl userIds = new ArrayList<>(); - for (RepairWorker worker:list){ + for (RepairWorker worker : list) { userIds.add(worker.getUserId()); - if("".equals(userIdsStr)){ + if ("".equals(userIdsStr)) { userIdsStr = String.valueOf(worker.getUserId()); - }else{ - userIdsStr = ","+worker.getUserId(); + } else { + userIdsStr = "," + worker.getUserId(); } } repairTicketsReqVO.setUserIds(userIds); @@ -1176,56 +1175,54 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl ids = list.stream().map(DlTicketWares::getId).collect(Collectors.toList()); - List twItems = new ArrayList<>(); - if (CollectionUtil.isNotEmpty(ids)){ - twItems = twItemService.list(new LambdaQueryWrapper().and(item -> { + if (CollectionUtil.isNotEmpty(list)) { + // 查配件申请表的所有已领取数量小于申请数量的子表信息 + List ids = list.stream().map(DlTicketWares::getId).collect(Collectors.toList()); + List twItems = twItemService.list(new LambdaQueryWrapper().and(item -> { item.in(DlTwItem::getTwId, ids) .apply("wares_already_count < wares_count"); })); - } - if (CollectionUtil.isNotEmpty(twItems)) { - // 更新工单子表(主要是把已领料的字段同步给工单配件的数量字段) - // 查询工单子表(三个查询条件,属于那个工单,属于配件类型,属于需要改变的(即申请表的已领取数量小于申请数量的)) - Set waresId = twItems.stream().map(DlTwItem::getWaresId).collect(Collectors.toSet()); - List items = titemService.list(new LambdaQueryWrapper().and(item -> { - item.eq(DlRepairTitem::getTicketId, id) - .eq(DlRepairTitem::getItemType, "02") - .in(DlRepairTitem::getPartId, waresId); - })); - // 同一个配件可能申请过多次,属于是一个工单配件可能是对应多个申请表配件 - List finalTwItems = twItems; - List AllItems = items.stream().map(item -> { - DlRepairTitem titem = new DlRepairTitem(); - titem.setId(item.getId()); - List wares = finalTwItems.stream().filter(i -> i.getWaresId().equals(item.getPartId())).collect(Collectors.toList()); - int sum = wares.stream().mapToInt(DlTwItem::getWaresAlreadyCount).sum(); - titem.setItemCount(sum); - BigDecimal discount = item.getItemDiscount() == null ? BigDecimal.ONE : item.getItemDiscount(); - titem.setItemMoney(item.getItemPrice().multiply(BigDecimal.valueOf(sum)).multiply(discount)); - return titem; - }).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(twItems)) { + // 更新工单子表(主要是把已领料的字段同步给工单配件的数量字段) + // 查询工单子表(三个查询条件,属于那个工单,属于配件类型,属于需要改变的(即申请表的已领取数量小于申请数量的)) + Set waresId = twItems.stream().map(DlTwItem::getWaresId).collect(Collectors.toSet()); + List items = titemService.list(new LambdaQueryWrapper().and(item -> { + item.eq(DlRepairTitem::getTicketId, id) + .eq(DlRepairTitem::getItemType, "02") + .in(DlRepairTitem::getPartId, waresId); + })); + // 同一个配件可能申请过多次,属于是一个工单配件可能是对应多个申请表配件 + List AllItems = items.stream().map(item -> { + DlRepairTitem titem = new DlRepairTitem(); + titem.setId(item.getId()); + List wares = twItems.stream().filter(i -> i.getWaresId().equals(item.getPartId())).collect(Collectors.toList()); + int sum = wares.stream().mapToInt(DlTwItem::getWaresAlreadyCount).sum(); + titem.setItemCount(sum); + BigDecimal discount = item.getItemDiscount() == null ? BigDecimal.ONE : item.getItemDiscount(); + titem.setItemMoney(item.getItemPrice().multiply(BigDecimal.valueOf(sum)).multiply(discount)); + return titem; + }).collect(Collectors.toList()); - // 可能出现配件申请单审核通过了没有任何领取或全部退了的情况,所以如果itemCount等于0,直接把这个数据删掉 - // 过滤出需要删除的数据 - List delItems = AllItems.stream().filter(item -> item.getItemCount() == 0).collect(Collectors.toList()); - if (CollectionUtil.isNotEmpty(delItems)) { - // 删除需要删的 - titemService.removeBatchByIds(delItems); - Set delIds = delItems.stream().map(DlRepairTitem::getId).collect(Collectors.toSet()); - // 得到需要改的 - List updateItems = AllItems.stream().filter(item -> delIds.contains(item.getId())).collect(Collectors.toList()); - if (CollectionUtil.isNotEmpty(updateItems)) { - titemService.updateBatchById(updateItems); + // 可能出现配件申请单审核通过了没有任何领取或全部退了的情况,所以如果itemCount等于0,直接把这个数据删掉 + // 过滤出需要删除的数据 + List delItems = AllItems.stream().filter(item -> item.getItemCount() == 0).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(delItems)) { + // 删除需要删的 + titemService.removeBatchByIds(delItems); + Set delIds = delItems.stream().map(DlRepairTitem::getId).collect(Collectors.toSet()); + // 得到需要改的 + List updateItems = AllItems.stream().filter(item -> delIds.contains(item.getId())).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(updateItems)) { + titemService.updateBatchById(updateItems); + } + } else { + // 没有需要删的就是全部都需要改 + titemService.updateBatchById(AllItems); } - } else { - // 没有需要删的就是全部都需要改 - titemService.updateBatchById(AllItems); - } - // 重新计算维修工单 - return computeTicket(id); + // 重新计算维修工单 + return computeTicket(id); + } } return true; } @@ -1335,7 +1332,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl list = titemService.list(new LambdaQueryWrapper().eq(DlRepairTitem::getTicketId, ticketId)); // 计算子表 - if (CollectionUtil.isEmpty(list)){ + if (CollectionUtil.isEmpty(list)) { throw exception0(500, "没有项目、配件或其他"); } List updateItems = list.stream().map(item -> { @@ -1516,19 +1513,19 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl().eq(RepairOrderInfo::getGoodsId, id)); // 删除工单