添加预约车功能及列表查询
This commit is contained in:
parent
8555949ed7
commit
16c608f99e
|
|
@ -45,23 +45,8 @@ public class BookCarController extends BaseController {
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "查询预约车订单详情")
|
@ApiOperation(value = "查询预约车订单详情")
|
||||||
@GetMapping("/getBookCarDetails")
|
@GetMapping("/getBookCarDetails")
|
||||||
public TableDataInfo getBookCarDetails(BookCarInfoDto devInfo) {
|
public AjaxResult getBookCarDetails(BookCarInfoDto devInfo) {
|
||||||
startPage();
|
return bookCarService.getBookCarDetails(devInfo);
|
||||||
List<BookCarDetailDto> list = bookCarService.getBookCarDetails(devInfo);
|
|
||||||
return getDataTable(list);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改租期
|
|
||||||
*/
|
|
||||||
@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")
|
@ApiModelProperty(value = "订单id")
|
||||||
private Integer bookId;
|
private Integer bookId;
|
||||||
|
|
||||||
|
private String maId;
|
||||||
|
|
||||||
@ApiModelProperty(value = "订单编号")
|
@ApiModelProperty(value = "订单编号")
|
||||||
private String bookCode;
|
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.book.domain.BookCarInfoDto;
|
||||||
import com.bonus.material.device.domain.vo.DevInfoVo;
|
import com.bonus.material.device.domain.vo.DevInfoVo;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -13,10 +15,14 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface BookCarMapper {
|
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;
|
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.book.domain.BookCarInfoDto;
|
||||||
import com.bonus.material.device.domain.vo.DevInfoVo;
|
import com.bonus.material.device.domain.vo.DevInfoVo;
|
||||||
|
|
||||||
|
|
@ -11,9 +11,19 @@ import java.util.List;
|
||||||
* @Date:2024/11/22 - 16:53
|
* @Date:2024/11/22 - 16:53
|
||||||
*/
|
*/
|
||||||
public interface BookCarService {
|
public interface BookCarService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加预约车
|
||||||
|
* @param bookCarInfoDto
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
Integer addBookCar(BookCarInfoDto bookCarInfoDto);
|
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;
|
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.common.security.utils.SecurityUtils;
|
||||||
import com.bonus.material.book.domain.BookCarDetailDto;
|
import com.bonus.material.book.domain.BookCarDetailDto;
|
||||||
import com.bonus.material.book.domain.BookCarInfoDto;
|
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.mapper.BookCarMapper;
|
||||||
import com.bonus.material.book.service.BookCarService;
|
import com.bonus.material.book.service.BookCarService;
|
||||||
import com.bonus.material.device.domain.vo.DevInfoVo;
|
import com.bonus.material.device.domain.vo.DevInfoVo;
|
||||||
|
import com.bonus.material.device.mapper.BmFileInfoMapper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author:liang.chao
|
* @Author:liang.chao
|
||||||
|
|
@ -21,29 +34,54 @@ public class BookCarServiceImpl implements BookCarService {
|
||||||
@Resource
|
@Resource
|
||||||
private BookCarMapper bookCarMapper;
|
private BookCarMapper bookCarMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BmFileInfoMapper bmFileInfoMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Integer addBookCar(BookCarInfoDto bookCarInfoDto) {
|
public Integer addBookCar(BookCarInfoDto bookCarInfoDto) {
|
||||||
Long userid = SecurityUtils.getLoginUser().getUserid();
|
Long userid = SecurityUtils.getLoginUser().getUserid();
|
||||||
bookCarInfoDto.setCreater(userid.toString());
|
bookCarInfoDto.setCreater(userid.toString());
|
||||||
Integer i = bookCarMapper.addBookCarInfo(bookCarInfoDto);
|
return bookCarMapper.addBookCarDetail(bookCarInfoDto);
|
||||||
if (i > 0) {
|
|
||||||
List<BookCarDetailDto> detailList = bookCarInfoDto.getDetailList();
|
|
||||||
for (BookCarDetailDto bookCarDetailDto : detailList) {
|
|
||||||
bookCarDetailDto.setCreater(userid.toString());
|
|
||||||
bookCarMapper.addBookCarDetail(bookCarDetailDto);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return i;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BookCarDetailDto> getBookCarDetails(BookCarInfoDto bookCarInfoDto) {
|
public AjaxResult getBookCarDetails(BookCarInfoDto bookCarInfoDto) {
|
||||||
return bookCarMapper.getBookCarDetails(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">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.bonus.material.book.mapper.BookCarMapper">
|
<mapper namespace="com.bonus.material.book.mapper.BookCarMapper">
|
||||||
|
|
||||||
<insert id="addBookCarInfo">
|
<insert id="addBookCarDetail">
|
||||||
insert into book_car_info(book_code, order_time, cost, supplier, order_status, order_user, phone_number, order_company, creater, create_time)
|
insert into book_car_detail(ma_id, order_status, order_company, creater, create_time)
|
||||||
values(#{bookCode},#{orderTime},#{cost},#{supplier},#{orderStatus},#{orderUser},#{phoneNumber},#{orderCompany},#{creater},now())
|
values(#{maId}, 0, #{orderCompany}, #{creater}, now())
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<insert id="addBookCarDetail">
|
<select id="getBookCarDetails" resultType="com.bonus.material.device.domain.vo.DevInfoVo">
|
||||||
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
|
SELECT
|
||||||
bcd.*,
|
d.ma_id as maId,
|
||||||
mt.type_code,
|
d.code as code,
|
||||||
mt.model_code,
|
d.device_name as deviceName,
|
||||||
mt.type_name
|
d.device_weight as deviceWeight,
|
||||||
FROM
|
d.type_id as typeId,
|
||||||
book_car_detail bcd
|
d.ma_status as maStatus,
|
||||||
LEFT JOIN ma_type mt ON bcd.type_id = mt.type_id
|
d.brand as brand,
|
||||||
WHERE
|
d.model_name as modelName,
|
||||||
bcd.type_id = #{bookId}
|
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>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -213,6 +213,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
d.day_lease_price as dayLeasePrice,
|
d.day_lease_price as dayLeasePrice,
|
||||||
d.person as person,
|
d.person as person,
|
||||||
d.person_phone as personPhone,
|
d.person_phone as personPhone,
|
||||||
|
c.company_id as companyId,
|
||||||
c.company_name as companyName,
|
c.company_name as companyName,
|
||||||
mt3.type_id as thirdId,
|
mt3.type_id as thirdId,
|
||||||
mt3.type_name as thirdName,
|
mt3.type_name as thirdName,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue