通知客户取车1/2

This commit is contained in:
xiaofajia 2024-10-23 23:17:46 +08:00
parent 82cbaaa890
commit 20ebfde19c
5 changed files with 109 additions and 9 deletions

View File

@ -19,7 +19,7 @@ public interface RepairRecordsService extends IService<RepairRecords> {
* 保存维修记录 * 保存维修记录
* *
* @param ticketId 工单id * @param ticketId 工单id
* @param repairItemId 工单子表id // * @param repairItemId 工单子表id
* @param type 工作类型数据字典repair_records_type;后端对应 RecordTypeEnum 枚举 * @param type 工作类型数据字典repair_records_type;后端对应 RecordTypeEnum 枚举
* @param remark 备注 * @param remark 备注
* @param images 图片(相对路径按照,分隔) * @param images 图片(相对路径按照,分隔)

View File

@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.tickets.service.DlRepairTicketsService;
import cn.iocoder.yudao.module.tickets.vo.CustomerAndCarVO; import cn.iocoder.yudao.module.tickets.vo.CustomerAndCarVO;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsReqVO; import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsReqVO;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsRespVO; import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsRespVO;
import cn.iocoder.yudao.module.tickets.vo.NoticeCusVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -293,5 +294,19 @@ public class DlRepairTicketsController {
dlRepairTicketsService.confirm(respVO); dlRepairTicketsService.confirm(respVO);
return CommonResult.ok(); return CommonResult.ok();
} }
/**
* 服务顾问通知客户取车
*
* @author 小李
* @date 22:40 2024/10/23
* @param noticeCusVO 请求对象
**/
@PostMapping("/noticeCus")
@Operation(summary = "服务顾问通知客户取车")
public CommonResult<?> noticeCus(@RequestBody NoticeCusVO noticeCusVO) {
dlRepairTicketsService.noticeCus(noticeCusVO);
return CommonResult.ok();
}
} }

View File

@ -4,6 +4,7 @@ import cn.iocoder.yudao.module.tickets.entity.DlRepairTickets;
import cn.iocoder.yudao.module.tickets.vo.CustomerAndCarVO; import cn.iocoder.yudao.module.tickets.vo.CustomerAndCarVO;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsReqVO; import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsReqVO;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsRespVO; import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsRespVO;
import cn.iocoder.yudao.module.tickets.vo.NoticeCusVO;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
@ -163,4 +164,13 @@ public interface DlRepairTicketsService extends IService<DlRepairTickets> {
* @param respVO 请求对象 * @param respVO 请求对象
**/ **/
void confirm(DlRepairTicketsRespVO respVO); void confirm(DlRepairTicketsRespVO respVO);
/**
* 服务顾问通知客户取车
*
* @author 小李
* @date 22:40 2024/10/23
* @param noticeCusVO 请求对象
**/
void noticeCus(NoticeCusVO noticeCusVO);
} }

View File

@ -43,10 +43,7 @@ import cn.iocoder.yudao.module.tickets.mapper.DlRepairTicketsMapper;
import cn.iocoder.yudao.module.tickets.service.DlRepairTicketsService; import cn.iocoder.yudao.module.tickets.service.DlRepairTicketsService;
import cn.iocoder.yudao.module.tickets.service.DlRepairTitemService; import cn.iocoder.yudao.module.tickets.service.DlRepairTitemService;
import cn.iocoder.yudao.module.tickets.tools.WordUtil; import cn.iocoder.yudao.module.tickets.tools.WordUtil;
import cn.iocoder.yudao.module.tickets.vo.CustomerAndCarVO; import cn.iocoder.yudao.module.tickets.vo.*;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsReqVO;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsRespVO;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTitemReqVO;
import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@ -55,6 +52,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.XWPFTemplate;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.Na;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -64,6 +62,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.InputStream; import java.io.InputStream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -719,13 +718,13 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
/** /**
* 维修总检完成总检 * 维修总检完成总检
* *
* @param respVO 请求对象
* @author 小李 * @author 小李
* @date 16:48 2024/10/23 * @date 16:48 2024/10/23
* @param respVO 请求对象
**/ **/
@Override @Override
@DSTransactional @DSTransactional
public void inspection(DlRepairTicketsRespVO respVO){ public void inspection(DlRepairTicketsRespVO respVO) {
// 新增日志 // 新增日志
repairRecordsService.saveRepairRecord(respVO.getId(), null, RecordTypeEnum.ZJ.getCode(), respVO.getRemark(), respVO.getImage()); repairRecordsService.saveRepairRecord(respVO.getId(), null, RecordTypeEnum.ZJ.getCode(), respVO.getRemark(), respVO.getImage());
// 更新工单 // 更新工单
@ -743,12 +742,12 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
/** /**
* 服务顾问上传出厂检验日志 * 服务顾问上传出厂检验日志
* *
* @param respVO 请求对象
* @author 小李 * @author 小李
* @date 17:47 2024/10/23 * @date 17:47 2024/10/23
* @param respVO 请求对象
**/ **/
@Override @Override
public void confirm(DlRepairTicketsRespVO respVO){ public void confirm(DlRepairTicketsRespVO respVO) {
// 更新工单状态 // 更新工单状态
baseMapper.update(new LambdaUpdateWrapper<DlRepairTickets>() baseMapper.update(new LambdaUpdateWrapper<DlRepairTickets>()
.set(DlRepairTickets::getTicketsWorkStatus, "03") .set(DlRepairTickets::getTicketsWorkStatus, "03")
@ -758,6 +757,52 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
// 记录日志 // 记录日志
repairRecordsService.saveRepairRecord(respVO.getId(), null, RecordTypeEnum.JSGD.getCode(), respVO.getRemark(), respVO.getImage()); repairRecordsService.saveRepairRecord(respVO.getId(), null, RecordTypeEnum.JSGD.getCode(), respVO.getRemark(), respVO.getImage());
} }
/**
* 服务顾问通知客户取车
*
* @param noticeCusVO 请求对象
* @author 小李
* @date 22:40 2024/10/23
**/
@Override
@DSTransactional
public void noticeCus(NoticeCusVO noticeCusVO) {
// 获取客户信息
DlRepairTickets tickets = baseMapper.selectById(noticeCusVO.getId());
CustomerMain cus = customerService.getById(tickets.getUserId());
// 维修项目
List<DictDataRespDTO> repairType = dictDataApi.getDictDataList("repair_type");
// 默认是维修
String type = "维修";
DictDataRespDTO dictDataRespDTO = repairType.stream()
.filter(item -> item.getValue().equals(tickets.getRepairType()))
.findFirst()
.orElse(null);
if (dictDataRespDTO != null){
type = dictDataRespDTO.getLabel();
}
// 构建消息
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String start = format.format(noticeCusVO.getTime()[0]);
String end = format.format(noticeCusVO.getTime()[1]);
String message = String.format(
"尊敬的客户您好:您的爱车%s已%s完毕请您于%s至%s之内前来取车。若有问题可以联系%s联系电话%s"
, tickets.getCarNo(), type, start, end, noticeCusVO.getName(), noticeCusVO.getMobile()
);
// todo 小程序通知客户
// todo 短信通知客户
// 记录日志
String recordStr = noticeCusVO.getName()
+ "通知客户:"
+ cus.getCusName()
+ ""
+ start
+ ""
+ end
+ "前来取车";
repairRecordsService.saveRepairRecord(noticeCusVO.getId(), null, RecordTypeEnum.JSGD.getCode(), recordStr, null);
}
} }

View File

@ -0,0 +1,30 @@
package cn.iocoder.yudao.module.tickets.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Data
public class NoticeCusVO {
/** 维修工单ID */
private String id;
/** 取车时间 */
@Schema(pattern = "时间区间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private Date[] time;
/** 联系人 */
private String name;
/** 联系电话 */
private String mobile;
/** 备注 */
private String remark;
}