diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/vo/CarMainRespVO.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/vo/CarMainRespVO.java index 4678348c..52b4c6dc 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/vo/CarMainRespVO.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/vo/CarMainRespVO.java @@ -44,4 +44,6 @@ public class CarMainRespVO extends CarMain { List brandAndModel; /** 车辆类型 */ private String brandType; + /** 车辆logo */ + private String logoImg; } \ No newline at end of file diff --git a/dl-module-base/src/main/resources/mapper/custom/CarMainMapper.xml b/dl-module-base/src/main/resources/mapper/custom/CarMainMapper.xml index a3a4dfd3..1ecba2ea 100644 --- a/dl-module-base/src/main/resources/mapper/custom/CarMainMapper.xml +++ b/dl-module-base/src/main/resources/mapper/custom/CarMainMapper.xml @@ -36,6 +36,7 @@ SELECT , bcb.brand_name AS brandStr, + bcb.logo_img AS logoImg, bcm.model_name AS modelStr FROM `base_car_main` tbcm @@ -73,6 +74,9 @@ AND tbcm.engine_number LIKE CONCAT('%',#{dto.engineNumber},'%') + + AND tbcm.user_id = #{dto.userId} + ORDER BY tbcm.car_register_date DESC 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 b78e3853..7c8e291f 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 @@ -115,5 +115,19 @@ public class DlTicketWaresController { dlTicketWaresService.repairPassTicketWares(respVO); return CommonResult.ok(); } + + /** + * 仓库确认退料 + * + * @author 小李 + * @date 22:03 2024/10/17 + * @param respVO 请求对象 + **/ + @PostMapping("/passBack") + @Operation(summary = "仓库确认退料") + public CommonResult passBackTicketWares(@RequestBody DlTicketWaresRespVO respVO){ + dlTicketWaresService.passBackTicketWares(respVO); + return CommonResult.ok(); + } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTwItemController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTwItemController.java index 383c54eb..20ad5e12 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTwItemController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTwItemController.java @@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.tickets.vo.DlTwItemReqVO; import io.swagger.v3.oas.annotations.Operation; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTicketWaresService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTicketWaresService.java index ba5d44d3..12de0b0e 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTicketWaresService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTicketWaresService.java @@ -68,4 +68,13 @@ public interface DlTicketWaresService extends IService { * @param respVO 请求对象 **/ void repairPassTicketWares(DlTicketWaresRespVO respVO); + + /** + * 仓库确认退料 + * + * @author 小李 + * @date 22:03 2024/10/17 + * @param respVO 请求对象 + **/ + void passBackTicketWares(DlTicketWaresRespVO respVO); } 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 fa51db4b..8cc502f6 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 @@ -207,7 +207,9 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl() + // 工单子项总数量增加上配件的数量 + .setSql("count = count - " + respVO.getWares().size()) + // 工单配件总价 + .setSql("part_price = part_price - " + reduce) + // 工单总价 + .setSql("total_price = total_price - " + reduce) + // 参考成本 + .setSql("cost = cost - " + reduce) + // 参考毛利 + .setSql("profit = profit - " + reduce) + // 领料状态 + .set(DlRepairTickets::getPartStatus, "02") + .eq(DlRepairTickets::getId, respVO.getTicketId()) + ); + // 维修工单子表对应的数据更新 + // 先查数据出来 + List list = repairTitemService.list(new LambdaQueryWrapper().and(i -> { + i.eq(DlRepairTitem::getTicketId, respVO.getTicketId()) + .in(DlRepairTitem::getPartId, respVO.getWares().stream().map(DlRepairTitem::getPartId).collect(Collectors.toList())); + })); + list.forEach(item -> { + respVO.getWares().stream().filter(i -> i.getPartId().equals(item.getPartId())).findFirst().ifPresent(i -> { + // 如果只是退部分就减少数量 + if (!i.getItemCount().equals(item.getItemCount())){ + repairTitemService.update(new LambdaUpdateWrapper() + .setSql("item_count = item_count - " + i.getItemCount()) + .setSql("item_money = item_money - " + i.getItemMoney()) + .and(x -> { + x.eq(DlRepairTitem::getTicketId, respVO.getTicketId()).eq(DlRepairTitem::getPartId, item.getPartId()); + }) + ); + }else { + // 如果是全部退了,就直接删掉数据 + repairTitemService.removeById(item.getId()); + } + }); + }); } } @@ -257,17 +300,30 @@ public class DlTicketWaresServiceImpl extends ServiceImpl list = twItemService.list(new LambdaQueryWrapper().eq(DlTwItem::getTwId, respVO.getId())); - List list1 = list.stream().filter(item -> item.getWaresStatus().equals("01")).collect(Collectors.toList()); + List list1 = list.stream().filter(item -> item.getWaresStatus().equals(respVO.getType().equals("01") ? "01" : "03")).collect(Collectors.toList()); respVO.setStatus(list1.size() == list.size() ? "03" : "04"); baseMapper.updateById(respVO); // 操作库存 list.forEach(item -> { repairWaresService.update(new LambdaUpdateWrapper() - .setSql("stock = stock - " + item.getWaresCount()) + .setSql("stock = stock" + (respVO.getType().equals("01") ? "-" : "+") + item.getWaresCount()) .eq(RepairWares::getId, item.getWaresId()) ); }); } + + /** + * 仓库确认退料 + * + * @author 小李 + * @date 22:03 2024/10/17 + * @param respVO 请求对象 + **/ + @Override + public void passBackTicketWares(DlTicketWaresRespVO respVO){ + // 更新申请单子表状态 + twItemService.updateBatchById(respVO.getItems()); + } }