From 16c608f99e342e96ef8ab798583d7e9620369de7 Mon Sep 17 00:00:00 2001 From: mashuai Date: Sat, 23 Nov 2024 17:15:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=A2=84=E7=BA=A6=E8=BD=A6?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=8F=8A=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../book/controller/BookCarController.java | 19 +---- .../material/book/domain/BookCarInfoDto.java | 2 + .../bonus/material/book/domain/BookCarVo.java | 28 ++++++++ .../book/domain/CompanyPersonPhoneKey.java | 20 ++++++ .../material/book/mapper/BookCarMapper.java | 14 ++-- .../material/book/service/BookCarService.java | 16 ++++- .../book/service/impl/BookCarServiceImpl.java | 72 ++++++++++++++----- .../mapper/material/bookcar/BookCarMapper.xml | 48 +++++++------ .../mapper/material/device/DevInfoMapper.xml | 1 + 9 files changed, 159 insertions(+), 61 deletions(-) create mode 100644 bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/domain/BookCarVo.java create mode 100644 bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/domain/CompanyPersonPhoneKey.java diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/controller/BookCarController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/controller/BookCarController.java index 2ad2988..bf05a72 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/controller/BookCarController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/controller/BookCarController.java @@ -45,23 +45,8 @@ public class BookCarController extends BaseController { */ @ApiOperation(value = "查询预约车订单详情") @GetMapping("/getBookCarDetails") - public TableDataInfo getBookCarDetails(BookCarInfoDto devInfo) { - startPage(); - List list = bookCarService.getBookCarDetails(devInfo); - return getDataTable(list); + public AjaxResult getBookCarDetails(BookCarInfoDto devInfo) { + return bookCarService.getBookCarDetails(devInfo); } - /** - * 修改租期 - */ - @ApiOperation(value = "修改租期") - @PostMapping("/updaterentDay") - public AjaxResult updaterentDay(@RequestBody BookCarDetailDto bookCarDetailDto) { - Integer i = bookCarService.updaterentDay(bookCarDetailDto); - if (i > 0) { - return AjaxResult.success("修改成功"); - } else { - return AjaxResult.error("修改失败"); - } - } } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/domain/BookCarInfoDto.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/domain/BookCarInfoDto.java index aef0f77..8db8a2b 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/domain/BookCarInfoDto.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/domain/BookCarInfoDto.java @@ -19,6 +19,8 @@ public class BookCarInfoDto { @ApiModelProperty(value = "订单id") private Integer bookId; + private String maId; + @ApiModelProperty(value = "订单编号") private String bookCode; diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/domain/BookCarVo.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/domain/BookCarVo.java new file mode 100644 index 0000000..3e041ec --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/domain/BookCarVo.java @@ -0,0 +1,28 @@ +package com.bonus.material.book.domain; + +import com.bonus.material.device.domain.vo.DevInfoVo; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @Author ma_sh + * @create 2024/11/23 16:17 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class BookCarVo { + + /** + * 企业信息 + */ + private CompanyPersonPhoneKey companyPersonPhoneKey; + + /** + * 设备信息 + */ + private List devInfoVoList; +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/domain/CompanyPersonPhoneKey.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/domain/CompanyPersonPhoneKey.java new file mode 100644 index 0000000..f719e3d --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/domain/CompanyPersonPhoneKey.java @@ -0,0 +1,20 @@ +package com.bonus.material.book.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +/** + * 企业信息复合键 + * @Author ma_sh + * @create 2024/11/23 16:10 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CompanyPersonPhoneKey { + private String companyName; + private String person; + private String personPhone; +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/mapper/BookCarMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/mapper/BookCarMapper.java index 264f0e6..c9d38f0 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/mapper/BookCarMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/mapper/BookCarMapper.java @@ -4,7 +4,9 @@ import com.bonus.material.book.domain.BookCarDetailDto; import com.bonus.material.book.domain.BookCarInfoDto; import com.bonus.material.device.domain.vo.DevInfoVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -13,10 +15,14 @@ import java.util.List; */ @Mapper public interface BookCarMapper { - Integer addBookCarInfo(BookCarInfoDto bookCarInfoDto); - Integer addBookCarDetail(BookCarDetailDto bookCarDetailDto); - List getBookCarDetails(BookCarInfoDto devInfo); + /** + * 添加预约车详情 + * @param bookCarInfoDto + * @return + */ + Integer addBookCarDetail(BookCarInfoDto bookCarInfoDto); + + List getBookCarDetails(BookCarInfoDto devInfo); - Integer updaterentDay(BookCarDetailDto bookCarDetailDto); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/service/BookCarService.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/service/BookCarService.java index 92380e3..9bf75de 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/service/BookCarService.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/service/BookCarService.java @@ -1,6 +1,6 @@ package com.bonus.material.book.service; -import com.bonus.material.book.domain.BookCarDetailDto; +import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.book.domain.BookCarInfoDto; import com.bonus.material.device.domain.vo.DevInfoVo; @@ -11,9 +11,19 @@ import java.util.List; * @Date:2024/11/22 - 16:53 */ public interface BookCarService { + + /** + * 添加预约车 + * @param bookCarInfoDto + * @return + */ Integer addBookCar(BookCarInfoDto bookCarInfoDto); - List getBookCarDetails(BookCarInfoDto devInfo); + /** + * 获取预约车详情 + * @param devInfo + * @return + */ + AjaxResult getBookCarDetails(BookCarInfoDto devInfo); - Integer updaterentDay(BookCarDetailDto bookCarDetailDto); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/service/impl/BookCarServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/service/impl/BookCarServiceImpl.java index 007fb1e..800417e 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/service/impl/BookCarServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/book/service/impl/BookCarServiceImpl.java @@ -1,16 +1,29 @@ package com.bonus.material.book.service.impl; +import com.alibaba.nacos.common.utils.CollectionUtils; +import com.bonus.common.biz.domain.BmFileInfo; +import com.bonus.common.core.utils.DateUtils; +import com.bonus.common.core.utils.StringUtils; +import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; import com.bonus.material.book.domain.BookCarDetailDto; import com.bonus.material.book.domain.BookCarInfoDto; +import com.bonus.material.book.domain.BookCarVo; +import com.bonus.material.book.domain.CompanyPersonPhoneKey; import com.bonus.material.book.mapper.BookCarMapper; import com.bonus.material.book.service.BookCarService; import com.bonus.material.device.domain.vo.DevInfoVo; +import com.bonus.material.device.mapper.BmFileInfoMapper; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @Author:liang.chao @@ -21,29 +34,54 @@ public class BookCarServiceImpl implements BookCarService { @Resource private BookCarMapper bookCarMapper; + @Resource + private BmFileInfoMapper bmFileInfoMapper; + @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public Integer addBookCar(BookCarInfoDto bookCarInfoDto) { Long userid = SecurityUtils.getLoginUser().getUserid(); bookCarInfoDto.setCreater(userid.toString()); - Integer i = bookCarMapper.addBookCarInfo(bookCarInfoDto); - if (i > 0) { - List detailList = bookCarInfoDto.getDetailList(); - for (BookCarDetailDto bookCarDetailDto : detailList) { - bookCarDetailDto.setCreater(userid.toString()); - bookCarMapper.addBookCarDetail(bookCarDetailDto); + return bookCarMapper.addBookCarDetail(bookCarInfoDto); + } + + @Override + public AjaxResult getBookCarDetails(BookCarInfoDto bookCarInfoDto) { + List list = new ArrayList<>(); + List bookCarDetails = bookCarMapper.getBookCarDetails(bookCarInfoDto); + // 如果 bookCarDetails 不为空,处理文件信息 + if (CollectionUtils.isNotEmpty(bookCarDetails)) { + // 为每个 DevInfoVo 设置文件信息 + for (DevInfoVo bookCarDetail : bookCarDetails) { + BmFileInfo bmFileInfo = new BmFileInfo(); + bmFileInfo.setModelId(bookCarDetail.getMaId()); + bmFileInfo.setTaskType(17); + List fileList = bmFileInfoMapper.selectBmFileInfoList(bmFileInfo); + bookCarDetail.setBmFileInfoList(fileList); + } + // 根据 companyName, person, personPhone 进行分组 + Map> groupedByKey = bookCarDetails.stream() + .collect(Collectors.groupingBy(bookCarDetail -> new CompanyPersonPhoneKey( + bookCarDetail.getCompanyName(), + bookCarDetail.getPerson(), + bookCarDetail.getPersonPhone() + ))); + + // 遍历分组,创建每个分组的 BookCarVo 对象,并设置相关信息 + for (Map.Entry> entry : groupedByKey.entrySet()) { + CompanyPersonPhoneKey key = entry.getKey(); + List groupedList = entry.getValue(); + // 创建新的 BookCarVo 对象 + BookCarVo carVo = new BookCarVo(); + carVo.setCompanyPersonPhoneKey(key); + carVo.setDevInfoVoList(groupedList); + + // 将当前分组的 BookCarVo 添加到 list 中 + list.add(carVo); } } - return i; + // 返回最终结果 + return AjaxResult.success(list); } - @Override - public List getBookCarDetails(BookCarInfoDto bookCarInfoDto) { - return bookCarMapper.getBookCarDetails(bookCarInfoDto); - } - - @Override - public Integer updaterentDay(BookCarDetailDto bookCarDetailDto) { - return bookCarMapper.updaterentDay(bookCarDetailDto); - } } diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/bookcar/BookCarMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/bookcar/BookCarMapper.xml index 8263d48..d4e7423 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/bookcar/BookCarMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/bookcar/BookCarMapper.xml @@ -4,29 +4,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - insert into book_car_info(book_code, order_time, cost, supplier, order_status, order_user, phone_number, order_company, creater, create_time) - values(#{bookCode},#{orderTime},#{cost},#{supplier},#{orderStatus},#{orderUser},#{phoneNumber},#{orderCompany},#{creater},now()) + + insert into book_car_detail(ma_id, order_status, order_company, creater, create_time) + values(#{maId}, 0, #{orderCompany}, #{creater}, now()) - - insert into book_car_detail(book_id, type_id, lease_type, lease_price, rent_day, days, num, costs, creater, create_time) - values(#{bookId},#{typeId},#{leaseType},#{leasePrice},#{rentDay},#{days},#{num},#{costs},#{creater},now()) - - - update book_car_detail set rent_day = #{rentDay} where id = #{id} - - SELECT - bcd.*, - mt.type_code, - mt.model_code, - mt.type_name - FROM - book_car_detail bcd - LEFT JOIN ma_type mt ON bcd.type_id = mt.type_id - WHERE - bcd.type_id = #{bookId} + d.ma_id as maId, + d.code as code, + d.device_name as deviceName, + d.device_weight as deviceWeight, + d.type_id as typeId, + d.ma_status as maStatus, + d.brand as brand, + d.model_name as modelName, + mt.type_name as typeName, + d.production_date as productionDate, + d.working_hours as workingHours, + d.serial_number as serialNumber, + d.day_lease_price as dayLeasePrice, + d.person as person, + d.person_phone as personPhone, + c.company_name as companyName, + c.company_id as companyId, + c.operate_address as operateAddress, + d.create_time as createTime + FROM ma_dev_info d + LEFT JOIN bm_company_info c ON d.own_co = c.company_id + LEFT JOIN book_car_detail bcd ON d.ma_id = bcd.ma_id + LEFT JOIN ma_type mt ON d.type_id = mt.type_id and mt.del_flag = '0' + where d.is_active = '1' and bcd.order_status = '0' \ No newline at end of file diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml index f69d88c..96bfee2 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml @@ -213,6 +213,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" d.day_lease_price as dayLeasePrice, d.person as person, d.person_phone as personPhone, + c.company_id as companyId, c.company_name as companyName, mt3.type_id as thirdId, mt3.type_name as thirdName,