From eaf06a2d77a8d1dc343cbb9162580a51a046f1db Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Wed, 13 Nov 2024 19:58:46 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E4=BB=B6=E7=94=B3=E8=AF=B7=E5=8D=95?= =?UTF-8?q?=E5=8A=A0=E4=B8=8A=E5=9B=BE=E7=89=87=E5=92=8C=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E5=85=B6=E4=BB=96=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/DlTwItemController.java | 20 +++++++-- .../module/tickets/entity/DlTicketWares.java | 3 ++ .../tickets/service/DlTwItemService.java | 10 +++++ .../impl/DlRepairTicketsServiceImpl.java | 3 +- .../impl/DlTicketWaresServiceImpl.java | 30 +++++++------ .../service/impl/DlTwItemServiceImpl.java | 35 ++++++++++++++++ .../yudao/module/tickets/vo/AddTwiVO.java | 42 +++++++++++++++++++ .../mapper/tickets/DlTicketWaresMapper.xml | 4 +- 8 files changed, 129 insertions(+), 18 deletions(-) create mode 100644 dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/AddTwiVO.java 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 2880b57c..8deeac17 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 @@ -3,12 +3,10 @@ package cn.iocoder.yudao.module.tickets.controller.admin; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.tickets.entity.DlTwItem; import cn.iocoder.yudao.module.tickets.service.DlTwItemService; +import cn.iocoder.yudao.module.tickets.vo.AddTwiVO; 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 org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -41,5 +39,19 @@ public class DlTwItemController { public CommonResult listTwItem(DlTwItemReqVO reqVO){ return success(dlTwItemService.listTwItem(reqVO)); } + + /** + * 给配件申请表子表添加数据 + * + * @author 小李 + * @date 17:47 2024/11/13 + * @param addTwiVO 对象 + **/ + @PostMapping("/addTwi") + @Operation(summary = "给配件申请表子表添加数据") + public CommonResult addTwi(@RequestBody AddTwiVO addTwiVO){ + dlTwItemService.addTwi(addTwiVO); + return CommonResult.ok(); + } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/entity/DlTicketWares.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/entity/DlTicketWares.java index 9c6f7e8c..bf15ed68 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/entity/DlTicketWares.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/entity/DlTicketWares.java @@ -65,4 +65,7 @@ public class DlTicketWares extends TenantBaseDO { /** 备注 */ private String remark; + + /** 多个图片地址,英文逗号分隔(拍照上传配件申请单时用) */ + private String images; } \ No newline at end of file diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTwItemService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTwItemService.java index c4a51ff9..f98bad59 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTwItemService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTwItemService.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.tickets.service; import cn.iocoder.yudao.module.tickets.entity.DlTwItem; +import cn.iocoder.yudao.module.tickets.vo.AddTwiVO; import cn.iocoder.yudao.module.tickets.vo.DlTwItemReqVO; import cn.iocoder.yudao.module.tickets.vo.DlTwItemRespVO; import com.baomidou.mybatisplus.extension.service.IService; @@ -23,4 +24,13 @@ public interface DlTwItemService extends IService { * @param reqVO 请求对象 **/ List listTwItem(DlTwItemReqVO reqVO); + + /** + * 给配件申请表子表添加数据 + * + * @author 小李 + * @date 17:47 2024/11/13 + * @param addTwiVO 对象 + **/ + void addTwi(AddTwiVO addTwiVO); } 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 1a4c1845..ed94e46c 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 @@ -1427,7 +1427,8 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl list = respVO.getItems().stream() - .map(item -> { - DlTwItem twItem = BeanUtil.toBean(item, DlTwItem.class); - twItem.setTwId(ticketWares.getId()); - twItem.setWaresStatus(""); - twItem.setWaresAlreadyCount(0); - return twItem; - }).collect(Collectors.toList()); - if (CollectionUtil.isEmpty(list)) { - throw exception0(500, "配件列表为空"); + if (CollectionUtil.isNotEmpty(respVO.getItems())){ + List list = respVO.getItems().stream() + .map(item -> { + DlTwItem twItem = BeanUtil.toBean(item, DlTwItem.class); + twItem.setTwId(ticketWares.getId()); + twItem.setWaresStatus(""); + twItem.setWaresAlreadyCount(0); + return twItem; + }).collect(Collectors.toList()); + if (CollectionUtil.isEmpty(list)) { + throw exception0(500, "配件列表为空"); + } + twItemService.saveOrUpdateBatch(list); } - twItemService.saveOrUpdateBatch(list); // 通知对应的维修服务顾问和总检 // 维修服务顾问即创建工单时选的是谁 @@ -323,7 +329,7 @@ public class DlTicketWaresServiceImpl extends ServiceImpl 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.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())); 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 d4cc0054..5e17804d 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 @@ -6,9 +6,12 @@ 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; import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO; +import cn.iocoder.yudao.module.tickets.entity.DlTicketWares; import cn.iocoder.yudao.module.tickets.entity.DlTwItem; import cn.iocoder.yudao.module.tickets.mapper.DlTwItemMapper; +import cn.iocoder.yudao.module.tickets.service.DlTicketWaresService; import cn.iocoder.yudao.module.tickets.service.DlTwItemService; +import cn.iocoder.yudao.module.tickets.vo.AddTwiVO; import cn.iocoder.yudao.module.tickets.vo.DlTwItemReqVO; import cn.iocoder.yudao.module.tickets.vo.DlTwItemRespVO; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -22,6 +25,7 @@ import java.util.Map; import java.util.stream.Collectors; import static cn.iocoder.yudao.common.RepairCons.DICT_REPAIR_UNIT; +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0; /** * 针对表【dl_tw_item(工单配件申请/退回子表)】的数据库操作Service实现 @@ -40,6 +44,9 @@ public class DlTwItemServiceImpl extends ServiceImpl @Resource @Lazy private RepairWaresService waresService; + @Resource + @Lazy + private DlTicketWaresService ticketWaresService; /** * 根据主表查看全部 @@ -78,6 +85,34 @@ public class DlTwItemServiceImpl extends ServiceImpl } return null; } + + /** + * 给配件申请表子表添加数据 + * + * @author 小李 + * @date 17:47 2024/11/13 + * @param addTwiVO 对象 + **/ + @Override + public void addTwi(AddTwiVO addTwiVO){ + // 构建子表数据 + if (CollectionUtil.isEmpty(addTwiVO.getItems())){ + throw exception0(500, "请选择配件"); + } + List twItems = addTwiVO.getItems().stream().map(item -> { + DlTwItem twItem = new DlTwItem(); + twItem.setTwId(addTwiVO.getId()); + twItem.setWaresId(item.getId()); + twItem.setWaresName(item.getName()); + twItem.setWaresCount(item.getCount()); + twItem.setWaresAlreadyCount(0); + twItem.setWaresStatus(""); + twItem.setRemark(item.getRemark()); + return twItem; + }).collect(Collectors.toList()); + // 新增 + baseMapper.insert(twItems); + } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/AddTwiVO.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/AddTwiVO.java new file mode 100644 index 00000000..ec012d54 --- /dev/null +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/AddTwiVO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.tickets.vo; + +import lombok.Data; + +import java.util.List; + +/** + * 给配件申请表子表添加数据 + * + * @author 小李 + * @date 17:41 2024/11/13 +**/ +@Data +public class AddTwiVO { + + private String id; + + private List items; + + /** + * 配件的信息 + * + * @author 小李 + * @date 17:45 2024/11/13 + **/ + @Data + public static class AddTwiVoItem { + + /** 配件ID */ + private String id; + + /** 配件名称 */ + private String name; + + /** 配件数量 */ + private Integer count; + + /** 备注 */ + private String remark; + + } +} \ No newline at end of file diff --git a/dl-module-repair/src/main/resources/mapper/tickets/DlTicketWaresMapper.xml b/dl-module-repair/src/main/resources/mapper/tickets/DlTicketWaresMapper.xml index ec7b8bcc..b5c39221 100644 --- a/dl-module-repair/src/main/resources/mapper/tickets/DlTicketWaresMapper.xml +++ b/dl-module-repair/src/main/resources/mapper/tickets/DlTicketWaresMapper.xml @@ -21,6 +21,7 @@ + @@ -40,7 +41,8 @@ dtw.adviser_name, dtw.status, dtw.remark, - dtw.create_time + dtw.create_time, + dtw.images from dl_ticket_wares dtw left join dl_repair_tickets drt on dtw.ticket_id = drt.id