package com.panzhihua.sangeshenbian.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.sangeshenbian.entity.Complaint; import com.panzhihua.sangeshenbian.enums.ProcessStatusEnum; import com.panzhihua.sangeshenbian.dao.ComplaintMapper; import com.panzhihua.sangeshenbian.service.IComplaintService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.util.Date; import static cn.hutool.core.util.ObjectUtil.isNull; /** *

* 问题报告表 服务实现类 *

* * @author * @since 2025-02-22 */ @Service public class ComplaintServiceImpl extends ServiceImpl implements IComplaintService { @Override public void saveComplaint(Complaint complaint,Long userId) { // 获取当前日期(年月日) String datePrefix = new SimpleDateFormat("yyyyMMdd").format(new Date()); // 查询当前日期的最大流水号 Complaint lastComplaint = getOne(new LambdaQueryWrapper() .likeRight(Complaint::getSerialNumber, datePrefix) // 查询以当前日期开头的流水号 .orderByDesc(Complaint::getSerialNumber) .last("limit 1")); String serialNumber; if (isNull(lastComplaint)) { // 如果当天没有记录,从 0001 开始 serialNumber = datePrefix + "0001"; } else { // 获取当前日期的最大流水号,并递增 String lastSerialNumber = lastComplaint.getSerialNumber(); int num = Integer.parseInt(lastSerialNumber.substring(lastSerialNumber.length() - 4)); // 提取后4位数字 serialNumber = datePrefix + String.format("%04d", num + 1); // 递增并格式化为4位 } // 设置流水号 complaint.setSerialNumber(serialNumber); // 设置其他字段 complaint.setStatus(ProcessStatusEnum.PROCESSING.getCode()); complaint.setCreateTime(DateUtils.getCurrentDate()); complaint.setCreateBy(userId); complaint.setUpdateBy(userId); complaint.setUpdateTime(DateUtils.getCurrentDate()); // 保存诉求记录 save(complaint); } }