添加预约车功能及列表查询
This commit is contained in:
parent
8555949ed7
commit
16c608f99e
|
|
@ -45,23 +45,8 @@ public class BookCarController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "查询预约车订单详情")
|
||||
@GetMapping("/getBookCarDetails")
|
||||
public TableDataInfo getBookCarDetails(BookCarInfoDto devInfo) {
|
||||
startPage();
|
||||
List<BookCarDetailDto> 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("修改失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@ public class BookCarInfoDto {
|
|||
@ApiModelProperty(value = "订单id")
|
||||
private Integer bookId;
|
||||
|
||||
private String maId;
|
||||
|
||||
@ApiModelProperty(value = "订单编号")
|
||||
private String bookCode;
|
||||
|
||||
|
|
|
|||
|
|
@ -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<DevInfoVo> devInfoVoList;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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<BookCarDetailDto> getBookCarDetails(BookCarInfoDto devInfo);
|
||||
/**
|
||||
* 添加预约车详情
|
||||
* @param bookCarInfoDto
|
||||
* @return
|
||||
*/
|
||||
Integer addBookCarDetail(BookCarInfoDto bookCarInfoDto);
|
||||
|
||||
List<DevInfoVo> getBookCarDetails(BookCarInfoDto devInfo);
|
||||
|
||||
Integer updaterentDay(BookCarDetailDto bookCarDetailDto);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<BookCarDetailDto> getBookCarDetails(BookCarInfoDto devInfo);
|
||||
/**
|
||||
* 获取预约车详情
|
||||
* @param devInfo
|
||||
* @return
|
||||
*/
|
||||
AjaxResult getBookCarDetails(BookCarInfoDto devInfo);
|
||||
|
||||
Integer updaterentDay(BookCarDetailDto bookCarDetailDto);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<BookCarDetailDto> detailList = bookCarInfoDto.getDetailList();
|
||||
for (BookCarDetailDto bookCarDetailDto : detailList) {
|
||||
bookCarDetailDto.setCreater(userid.toString());
|
||||
bookCarMapper.addBookCarDetail(bookCarDetailDto);
|
||||
}
|
||||
}
|
||||
return i;
|
||||
return bookCarMapper.addBookCarDetail(bookCarInfoDto);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BookCarDetailDto> getBookCarDetails(BookCarInfoDto bookCarInfoDto) {
|
||||
return bookCarMapper.getBookCarDetails(bookCarInfoDto);
|
||||
public AjaxResult getBookCarDetails(BookCarInfoDto bookCarInfoDto) {
|
||||
List<BookCarVo> list = new ArrayList<>();
|
||||
List<DevInfoVo> 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<BmFileInfo> fileList = bmFileInfoMapper.selectBmFileInfoList(bmFileInfo);
|
||||
bookCarDetail.setBmFileInfoList(fileList);
|
||||
}
|
||||
// 根据 companyName, person, personPhone 进行分组
|
||||
Map<CompanyPersonPhoneKey, List<DevInfoVo>> groupedByKey = bookCarDetails.stream()
|
||||
.collect(Collectors.groupingBy(bookCarDetail -> new CompanyPersonPhoneKey(
|
||||
bookCarDetail.getCompanyName(),
|
||||
bookCarDetail.getPerson(),
|
||||
bookCarDetail.getPersonPhone()
|
||||
)));
|
||||
|
||||
// 遍历分组,创建每个分组的 BookCarVo 对象,并设置相关信息
|
||||
for (Map.Entry<CompanyPersonPhoneKey, List<DevInfoVo>> entry : groupedByKey.entrySet()) {
|
||||
CompanyPersonPhoneKey key = entry.getKey();
|
||||
List<DevInfoVo> groupedList = entry.getValue();
|
||||
// 创建新的 BookCarVo 对象
|
||||
BookCarVo carVo = new BookCarVo();
|
||||
carVo.setCompanyPersonPhoneKey(key);
|
||||
carVo.setDevInfoVoList(groupedList);
|
||||
|
||||
// 将当前分组的 BookCarVo 添加到 list 中
|
||||
list.add(carVo);
|
||||
}
|
||||
}
|
||||
// 返回最终结果
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer updaterentDay(BookCarDetailDto bookCarDetailDto) {
|
||||
return bookCarMapper.updaterentDay(bookCarDetailDto);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,29 +4,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.bonus.material.book.mapper.BookCarMapper">
|
||||
|
||||
<insert id="addBookCarInfo">
|
||||
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 id="addBookCarDetail">
|
||||
insert into book_car_detail(ma_id, order_status, order_company, creater, create_time)
|
||||
values(#{maId}, 0, #{orderCompany}, #{creater}, now())
|
||||
</insert>
|
||||
|
||||
<insert id="addBookCarDetail">
|
||||
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())
|
||||
</insert>
|
||||
<update id="updaterentDay">
|
||||
update book_car_detail set rent_day = #{rentDay} where id = #{id}
|
||||
</update>
|
||||
<select id="getBookCarDetails" resultType="com.bonus.material.book.domain.BookCarDetailDto">
|
||||
<select id="getBookCarDetails" resultType="com.bonus.material.device.domain.vo.DevInfoVo">
|
||||
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'
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in New Issue