fengjin
2022-11-25 2fed0b52d9c8e98d46c1eb8bd3876dafa60fc0b6
flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java
@@ -1,35 +1,66 @@
package com.dg.core.service.impl;
import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dg.core.ResultData;
import com.dg.core.db.gen.entity.*;
import com.dg.core.db.gen.mapper.GuideRepairOrderImageMapper;
import com.dg.core.db.gen.mapper.GuideRepairOrderMapper;
import com.dg.core.db.gen.mapper.SysUserMapper;
import com.dg.core.db.gen.mapper.TransactionEventMapper;
import com.dg.core.db.gen.mapper.*;
import com.dg.core.db.manual.mapper.util.ConstantPropertiesUtil;
import com.dg.core.service.IGuideRepairOrderService;
import com.dg.core.service.ISysSettingsService;
import com.dg.core.util.SmsUtil;
import com.dg.core.util.Snowflake;
import com.dg.core.util.TestDate;
import com.dg.core.util.WxUtil;
import com.iceyyy.workday.WorkUtils;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
@Service
public class GuideRepairOrderServiceImpl extends ServiceImpl<GuideRepairOrderMapper, GuideRepairOrder>  implements IGuideRepairOrderService {
public class GuideRepairOrderServiceImpl extends ServiceImpl<GuideRepairOrderMapper, GuideRepairOrder>
        implements IGuideRepairOrderService {
    @Resource
    private TransactionEventMapper transactionEventMapper;
    @Resource
    private  GuideRepairOrderImageMapper guideRepairOrderImageMapper;
    private GuideRepairOrderImageMapper guideRepairOrderImageMapper;
    @Resource
    private SysUserMapper sysUserMapper;
    @Resource
    private OrganizationChartMapper organizationChartMapper;
    @Resource
    private GuideEvolveMapper guideEvolveMapper;
    @Resource
    private AutomessageSysSettingsMapper iSysSettingsMapper;
    @Resource
    SmsUtil smsUtil;
    @Resource(name = "stringRedisTemplate")
    private StringRedisTemplate stringRedisTemplate;
    private static WxUtil wxUtil;
    @Override
    public  int addOrder(GuideRepairOrder guideRepairOrder){
    public int addOrder(GuideRepairOrder guideRepairOrder) {
        TransactionEvent transactionEvent = transactionEventMapper.selectOne(new QueryWrapper<TransactionEvent>().lambda().
                eq(TransactionEvent::getId, guideRepairOrder.getMatterId()));
@@ -37,51 +68,155 @@
        guideRepairOrder.setMatterName(transactionEvent.getMatterName());
        guideRepairOrder.setDepartmentId(transactionEvent.getDepartmentId());
        guideRepairOrder.setClassifyId(transactionEvent.getClassifyId());
        guideRepairOrder.setState("1");
        guideRepairOrder.setCreateTime(LocalDateTime.now());
        guideRepairOrder.setUpdateTime(LocalDateTime.now());
        transactionEvent.setTransactionNum(transactionEvent.getTransactionNum()+1);
        if (guideRepairOrder.getImages()!=null){
           String[] images = guideRepairOrder.getImages().split(",");
           for (String image: images) {
            GuideRepairOrderImage guideRepairOrderImage = new GuideRepairOrderImage();
            guideRepairOrderImage.setId(Snowflake.getId());
            guideRepairOrderImage.setGuideRepairOrderId(guideRepairOrder.getOrderNum());
            guideRepairOrderImage.setUrl(image);
            guideRepairOrderImage.setCreateTime(LocalDateTime.now());
            guideRepairOrderImage.setType(1);
            guideRepairOrderImageMapper.insert(guideRepairOrderImage);
          }
        List<String> departmentIds = new ArrayList<>();
        Boolean isAdd = true;//是否能够新建工单
        List<GuideRepairOrder> guideRepairOrders = baseMapper.selectList(new QueryWrapper<GuideRepairOrder>().lambda()
                .eq(GuideRepairOrder::getMatterId, guideRepairOrder.getMatterId())
                .eq(GuideRepairOrder::getConsultContent, guideRepairOrder.getConsultContent()));
        if (guideRepairOrders.size() == 0) {
            isAdd = true;
        } else {
            for (GuideRepairOrder guideRepair : guideRepairOrders) {
                if (guideRepair.getState().equals("1") || guideRepair.getState().equals("2") || guideRepair.getState().equals("6") || guideRepair.getState().equals("7")) {
                    isAdd = false;
                    break;
                }
            }
        }
        if (guideRepairOrder.getVideo()!=null){
          if (guideRepairOrder.getOrderNum()!=null){
            GuideRepairOrderImage guideRepairOrderImage = new GuideRepairOrderImage();
            guideRepairOrderImage.setId(Snowflake.getId());
            guideRepairOrderImage.setGuideRepairOrderId(guideRepairOrder.getOrderNum());
            guideRepairOrderImage.setUrl(guideRepairOrder.getVideo());
            guideRepairOrderImage.setCreateTime(LocalDateTime.now());
            guideRepairOrderImage.setType(2);
            guideRepairOrderImageMapper.insert(guideRepairOrderImage);
        }
        }
        int ans= baseMapper.insert(guideRepairOrder);
        int i = transactionEventMapper.updateById(transactionEvent);
        if (ans>0&&i>0)
            return 1;
        else
            return 0;
        if (isAdd) {
            //自动分配业务代码开始
            List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectByCode(transactionEvent.getDepartmentId(), guideRepairOrder.getAreaCode());
            if (organizationChartEntities.size() > 0) {
                for (OrganizationChartEntity organizationChart : organizationChartEntities) {
                    departmentIds.add(organizationChart.getId().toString());
                }
                List<SysUser> sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, "," + transactionEvent.getId(), transactionEvent.getId() + ",");//获取导半人员
                if (sysUsers.size() == 0) {//如果此所属地区部门没有导半人员则看其下级地区有没有相关分类导办人员
                    for (OrganizationChartEntity organizationChart : organizationChartEntities) {
                        //获取下级部门
                        List<OrganizationChartEntity> organizationChartEntitiesUser = organizationChartMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda()
                                .eq(OrganizationChartEntity::getParentId, organizationChart.getId().toString()));
                        if (organizationChartEntitiesUser != null)
                            departmentIds = this.getDepartmentIds(organizationChartEntitiesUser, departmentIds);
                    }
                    sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, "," + transactionEvent.getId(), transactionEvent.getId() + ",");//获取导半人员
                    if (sysUsers.size() == 0) {//如果该所属地区没有导办人员则为获取其上級地区有没有相关分类导办人员
                        List<String> departmentIdsParent = new ArrayList<>();
                        departmentIdsParent.addAll(departmentIds);
                        for (String departmentId : departmentIdsParent) {
                            OrganizationChartEntity organizationChart = organizationChartMapper.selectOne(new QueryWrapper<OrganizationChartEntity>().lambda().eq(OrganizationChartEntity::getId, departmentId));
                            OrganizationChartEntity organizationChartParent = organizationChartMapper.selectOne(new QueryWrapper<OrganizationChartEntity>().lambda().eq(OrganizationChartEntity::getId, organizationChart.getParentId()));
                            if (organizationChartParent != null) {
                                departmentIds.add(organizationChartParent.getId().toString());
                            }
                        }
                        sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, "," + transactionEvent.getId(), transactionEvent.getId() + ",");//获取导半人员
                        if (sysUsers.size() == 0) {
                            sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, null, null);//获取导半人员
                            if (sysUsers.size() == 0) {
                                //如果该所属地区没有导办人员则为特殊单据需要手动分配
                                guideRepairOrder.setState("1");
                            }
                        }
                    }
                }
                if (sysUsers.size() > 0) {//系统分配导办人员
                    SysUser sysUser = sysUsers.get(0);//因为sql用了升序排序所以第一条就是待办结最少的人员之一
                    guideRepairOrder.setState("2");
                    sysUser.setTransactionNum(sysUser.getTransactionNum() + 1);
                    sysUserMapper.updateById(sysUser);
                    guideRepairOrder.setGuideUserId(sysUser.getUserId().toString());
                    guideRepairOrder.setGuideDepartmentId(sysUser.getDepartmentId());
                    guideRepairOrder.setGuideUserPhone(sysUser.getPhonenumber());
                    //新增分配记录
                    GuideEvolveEntity entity = new GuideEvolveEntity();
                    entity.setCreateTime(LocalDateTime.now());
                    entity.setUpdateTime(LocalDateTime.now());
                    entity.setState("8");
                    entity.setDepartmentalId(sysUser.getDepartmentId());
                    entity.setToUserId(guideRepairOrder.getGuideUserId() + "");
//                    entity.setFromUserId(guideRepairOrder.getSubmitUserId());
//                    entity.setFromDepartmentalId(guideRepairOrder.getGuideDepartmentId());
                    entity.setGuidOrderNum(guideRepairOrder.getOrderNum());
                    //超时时间设置业务开始
                    guideRepairOrder = this.setTimeoutTim(guideRepairOrder);
                    //超时时间设置业务结束
                    //消息推送
                    this.sendGuideRepairOrderSubmit(sysUser.getOpenid(), guideRepairOrder);
                    //短信发送
                    smsUtil.sendSmsSubmit(sysUser.getPhonenumber(), sysUser.getUserName());
                    guideEvolveMapper.insertConfig(entity);
                }
            } else {//如果该办事指南用户所选所属地区无导半部门则为特殊单据需要手动分配
                guideRepairOrder.setState("1");
            }
            //自动分配业务代码结束
            guideRepairOrder.setCreateTime(LocalDateTime.now());
            guideRepairOrder.setUpdateTime(LocalDateTime.now());
            guideRepairOrder.setIsPush(2);
            transactionEvent.setTransactionNum(transactionEvent.getTransactionNum() + 1);
            //保存图片地址
            if (guideRepairOrder.getImages() != null) {
                String[] images = guideRepairOrder.getImages().split(",");
                for (String image : images) {
                    GuideRepairOrderImage guideRepairOrderImage = new GuideRepairOrderImage();
                    guideRepairOrderImage.setId(Snowflake.getId());
                    guideRepairOrderImage.setGuideRepairOrderId(guideRepairOrder.getOrderNum());
                    guideRepairOrderImage.setUrl(image);
                    guideRepairOrderImage.setCreateTime(LocalDateTime.now());
                    guideRepairOrderImage.setType(1);
                    guideRepairOrderImageMapper.insert(guideRepairOrderImage);
                }
            }
            //保存视频地址
            if (guideRepairOrder.getVideo() != null) {
                if (guideRepairOrder.getOrderNum() != null) {
                    GuideRepairOrderImage guideRepairOrderImage = new GuideRepairOrderImage();
                    guideRepairOrderImage.setId(Snowflake.getId());
                    guideRepairOrderImage.setGuideRepairOrderId(guideRepairOrder.getOrderNum());
                    guideRepairOrderImage.setUrl(guideRepairOrder.getVideo());
                    guideRepairOrderImage.setCreateTime(LocalDateTime.now());
                    guideRepairOrderImage.setType(2);
                    guideRepairOrderImageMapper.insert(guideRepairOrderImage);
                }
            }
            int ans = baseMapper.insert(guideRepairOrder);
            int i = transactionEventMapper.updateById(transactionEvent);
            if (ans > 0 && i > 0)
                return 1;
            else
                return 0;
        } else {
            return 0;
        }
    }
    public List<String> getDepartmentIds(List<OrganizationChartEntity> organizationChartEntities, List<String> departmentIds) {
        for (OrganizationChartEntity organizationChart : organizationChartEntities) {
            departmentIds.add(organizationChart.getId().toString());
            List<OrganizationChartEntity> organizationChartEntitiesUser = organizationChartMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda()
                    .eq(OrganizationChartEntity::getParentId, organizationChart.getId().toString()));
            if (organizationChartEntitiesUser != null)
                departmentIds = this.getDepartmentIds(organizationChartEntitiesUser, departmentIds);
        }
        return departmentIds;
    }
    @Override
    public GuideRepairOrder selectConfigData(String Id, String orderNum) {
        return baseMapper.selectConfigData(Id,orderNum);
        return baseMapper.selectConfigData(Id, orderNum);
    }
    @Override
    public int updateConfig(GuideRepairOrder order) {
        SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getGuideUserId()));
        order.setGuideUserPhone(sysUser.getPhonenumber());
        if (order.getGuideUserId() != null && !order.getGuideUserId().equals("")) {
            SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getGuideUserId()));
            order.setGuideUserPhone(sysUser.getPhonenumber());
        }
        return baseMapper.updateConfig(order);
    }
@@ -91,14 +226,247 @@
    }
    @Override
    public List<GuideRepairOrder> selectConfigList(IPage<GuideRepairOrder> page, Integer state, String matterName) {
        return baseMapper.selectConfigList(page,state,matterName);
    public List<GuideRepairOrder> selectConfigList(IPage<GuideRepairOrder> page, Integer state,
                                                   String matterName, List<String> ids, String status,
                                                   String guideUserId, String createTimeStartTime,
                                                   String createTimeTimeEndTime, String classifyId) {
        return baseMapper.selectConfigList(page, state, matterName, ids, status, guideUserId, createTimeStartTime, createTimeTimeEndTime, classifyId);
    }
    @Override
    public int countConfigList(String matterName) {
        return baseMapper.countConfigList(matterName);
    public List<GuideRepairOrder> selectConfigList(String matterName, List<String> ids, String status,
                                                   String guideUserId, String createTimeStartTime, String createTimeTimeEndTime, String classifyId) {
        return baseMapper.selectConfigList(matterName, ids, status, guideUserId, createTimeStartTime, createTimeTimeEndTime, classifyId);
    }
    @Override
    public int countConfigList(String matterName, List<String> ids, String status, String guideUserId) {
        return baseMapper.countConfigList(matterName, ids, status, guideUserId);
    }
    @Override
    public int countUser(String userId, String state) {
        return baseMapper.countUser(userId, state);
    }
    @Override
    public int updateSysUserOrderNum(GuideEvolveEntity order) {
        if (order.getState() != null) {
            if (order.getState().equals("11")) {
                SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getToUserId()));
                GuideRepairOrder guideRepairOrder = baseMapper.selectOne(new QueryWrapper<GuideRepairOrder>().lambda()
                        .eq(GuideRepairOrder::getId, order.getGuideId()));
                if (guideRepairOrder != null) {
                    this.sendGuideRepairOrderSubmit(sysUser.getOpenid(), guideRepairOrder);
                }
                //短信发送
                smsUtil.sendSmsSubmit(sysUser.getPhonenumber(), sysUser.getUserName());
                sysUser.setTransactionNum(sysUser.getTransactionNum() + 1);
                return sysUserMapper.updateById(sysUser);
            } else if (order.getState().equals("10")) {
                SysUser sysUserTo = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getToUserId()));
                SysUser sysUserFrom = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getFromUserId()));
                sysUserTo.setTransactionNum(sysUserTo.getTransactionNum() + 1);
                if (sysUserFrom.getUserType().equals(2)) {
                    sysUserFrom.setTransactionNum(sysUserFrom.getTransactionNum() - 1);
                    sysUserMapper.updateById(sysUserFrom);
                }
                GuideRepairOrder guideRepairOrder = baseMapper.selectOne(new QueryWrapper<GuideRepairOrder>().lambda()
                        .eq(GuideRepairOrder::getId, order.getGuideId()));
                //短信发送
                smsUtil.sendSmsSubmit(sysUserTo.getPhonenumber(), sysUserTo.getUserName());
                if (guideRepairOrder != null) {
                    this.sendGuideRepairOrderSubmit(sysUserTo.getOpenid(), guideRepairOrder);
                }
                return sysUserMapper.updateById(sysUserTo);
            } else if (order.getState().equals("7")) {
                SysUser sysUserFrom = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getFromUserId()));
                sysUserFrom.setTransactionNum(sysUserFrom.getTransactionNum() - 1);
                return sysUserMapper.updateById(sysUserFrom);
            }
        }
        return 0;
    }
    /**
     * 1 今天   2昨天   3本月   4本年度 String time
     *
     * @param state
     * @param ids
     * @return
     */
    @Override
    public int countStatisticsNum(String state, List<String> ids, String time,
                                  String isTimeout, String evaluateState,
                                  List<String> classifyIds, String serviceState,
                                  String guideUserId) {
        return baseMapper.countStatisticsNum(state, ids, time, isTimeout, evaluateState, classifyIds, serviceState, guideUserId);
    }
    @Override
    public List<CountListNum> countListNum(String state, List<String> ids, Integer time) {
        return baseMapper.countListNum(state, ids, time);
    }
    @Override
    public SysUser getSubmitUser(GuideRepairOrder guideRepairOrder) {
        return sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, guideRepairOrder.getSubmitUserId()));
    }
    @Override
    public GuideRepairOrder setTimeoutTim(GuideRepairOrder guideRepairOrder) {
        AutomessageSysSettings automessageSysSettings = iSysSettingsMapper.selectOne(
                new QueryWrapper<AutomessageSysSettings>().lambda()
                        .eq(AutomessageSysSettings::getSettingName, "系统超时基础设置"));
        LocalDateTime startTime = LocalDate.now().atTime(0, 0, 0);//今天开始时间
        LocalDateTime morningStartTime = LocalDate.now().atTime(9, 0, 0);//上午工作开始时间
        LocalDateTime morningEndTime = LocalDate.now().atTime(12, 0, 0);//上午工作结束时间
        LocalDateTime afternoonStartTime = LocalDate.now().atTime(13, 30, 0);//下午工作开始时间
        LocalDateTime afternoonEndTime = LocalDate.now().atTime(17, 0, 0);//下午工作结束时间
        LocalDateTime endTime = LocalDate.now().atTime(23, 59, 59);//今天结束时间
        TestDate td = new TestDate();
        DateTime dateTimeUser = DateTime.now();
        String format = "YYYYMMdd";
        String dateTimeToday = dateTimeUser.toString(format);
        if (!WorkUtils.isWorkendDay(dateTimeToday)) {
            if (LocalDateTime.now().isAfter(startTime) && LocalDateTime.now().isBefore(morningStartTime)) {//提交时间是上午上班前
                guideRepairOrder.setTimeoutTime(LocalDate.now().
                        atTime(9 + automessageSysSettings.getTimeoutNotificationNum(), 0, 0));
            } else if (LocalDateTime.now().isAfter(morningStartTime) && LocalDateTime.now().isBefore(morningEndTime)) {//提交时间在上午工作日内
                guideRepairOrder.setTimeoutTime(LocalDateTime.now().plusHours(automessageSysSettings.getTimeoutNotificationNum()));
            } else if (LocalDateTime.now().isAfter(morningEndTime) && LocalDateTime.now().isBefore(afternoonStartTime)) {//提交时间在工作日午休内
                guideRepairOrder.setTimeoutTime(LocalDate.now().
                        atTime(13 + automessageSysSettings.getTimeoutNotificationNum(), 30, 0));
            } else if (LocalDateTime.now().isAfter(afternoonStartTime) && LocalDateTime.now().isBefore(afternoonEndTime)) {//提交时间在下午工作日内
                guideRepairOrder.setTimeoutTime(LocalDateTime.now().plusHours(automessageSysSettings.getTimeoutNotificationNum()));
            } else if (LocalDateTime.now().isAfter(afternoonEndTime) && LocalDateTime.now().isBefore(endTime)) {//提交时间在下午下班后
                DateTime dateTime = td.nextWeekDay(dateTimeUser);
                Calendar calendar = dateTime.toCalendar();
                LocalDateTime localDateTime = LocalDateTime.of(calendar.get(Calendar.YEAR),
                        calendar.get(Calendar.MONTH) + 1, calendar.get(Calendar.DATE),
                        9 + automessageSysSettings.getTimeoutNotificationNum(), 0);//设置时间为下一个工作日时间的9点+设置超时时间
                guideRepairOrder.setTimeoutTime(localDateTime);
            }
        } else//当前不是工作日则获取下一个工作日
        {
            DateTime dateTime = td.nextWeekDay(dateTimeUser);
            Calendar calendar = dateTime.toCalendar();
            LocalDateTime localDateTime = LocalDateTime.of(calendar.get(Calendar.YEAR),
                    calendar.get(Calendar.MONTH) + 1, calendar.get(Calendar.DATE),
                    9 + automessageSysSettings.getTimeoutNotificationNum(), 0);//设置时间为下一个工作日时间的9点+设置超时时间
            guideRepairOrder.setTimeoutTime(localDateTime);
        }
        return guideRepairOrder;
    }
    @Override
    public void sendGuideRepairOrderSubmit(String openid, GuideRepairOrder guideRepairOrder) {
        WxUtil wxUtil = new WxUtil();
        String accessToken = "0";
        try {
            accessToken = stringRedisTemplate.boundValueOps("access_token:access_token:" + ConstantPropertiesUtil.WX_OPEN_APP_ID).get();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        wxUtil.sendGuideRepairOrderSubmit(openid, accessToken, "WggWK_yG7_qfrTj8bQe-2co4ATgpXamLzT1xvrTu4K0", guideRepairOrder);
//                    smsUtil.sendSmsOvertime(sysUser.getPhonenumber(),guideRepairOrder.getMatterName());
    }
    @Override
    public int deleteConfigById(String Id) {
        GuideRepairOrder guideRepairOrderDelete = baseMapper.selectOne(new QueryWrapper<GuideRepairOrder>().lambda().eq(GuideRepairOrder::getId, Id));
        //删除进展记录
        guideEvolveMapper.delete(new QueryWrapper<GuideEvolveEntity>().lambda().eq(GuideEvolveEntity::getGuideId, Id));
        TransactionEvent transactionEvent = transactionEventMapper.selectOne(new QueryWrapper<TransactionEvent>().lambda().eq(TransactionEvent::getId, guideRepairOrderDelete.getMatterId()));
        if (transactionEvent.getTransactionNum()>0)
        {
            transactionEvent.setTransactionNum(transactionEvent.getTransactionNum() - 1);
        }
        //对应办事指南减一
        transactionEventMapper.updateById(transactionEvent);
        SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, guideRepairOrderDelete.getGuideUserId()));
        if (sysUser != null) {
            //对应导半人员待导半数量建议
            sysUser.setTransactionNum(sysUser.getTransactionNum() - 1);
            sysUserMapper.updateById(sysUser);
        }
        return baseMapper.deleteConfigById(Id);
    }
    @Override
    public ResultData pushOvertimeGuideRepairOrder() {
        List<GuideRepairOrder> guideRepairOrders = baseMapper.selectOvertime();
        WxUtil wxUtil = new WxUtil();
        String accessToken = "0";
        try {
            accessToken = stringRedisTemplate.boundValueOps("access_token:access_token:" + ConstantPropertiesUtil.WX_OPEN_APP_ID).get();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        for (GuideRepairOrder guideRepairOrder : guideRepairOrders) {
            transactionEventMapper.selectOne(new QueryWrapper<TransactionEvent>().lambda().eq(TransactionEvent::getId, guideRepairOrder.getMatterId()));
            SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, guideRepairOrder.getGuideUserId()));
            if (sysUser != null) {
                smsUtil.sendSmsOvertime(sysUser.getPhonenumber(), sysUser.getUserName());
                wxUtil.sendGuideRepairOrderOvertime(sysUser.getOpenid(), accessToken, "86JgWHhR8b1XxD72WYqMnndyfkiMtSSoCk9NFMwLEZ8", sysUser);
                guideRepairOrder.setIsPush(1);
                guideRepairOrder.setIsTimeout("2");
                baseMapper.updateById(guideRepairOrder);
            }
        }
        return ResultData.success();
    }
    @Override
    public int updateEvaluate() {
        //查找一天没有评价的单据
        List<GuideRepairOrder> guideRepairOrders = baseMapper.selectEvaluate();
        for (GuideRepairOrder guideRepairOrder : guideRepairOrders) {
            guideRepairOrder.setEvaluateState("1");
            guideRepairOrder.setEvaluateContent("好评");
            guideRepairOrder.setServiceState(1);
            guideRepairOrder.setState("3");
            baseMapper.updateById(guideRepairOrder);
            //新增默认好评进展
            GuideEvolveEntity entity = new GuideEvolveEntity();
            entity.setCreateTime(LocalDateTime.now());
            entity.setUpdateTime(LocalDateTime.now());
            entity.setState("12");
            entity.setFromUserId(guideRepairOrder.getSubmitUserId() + "");
            entity.setGuideId(guideRepairOrder.getId().toString());
            guideEvolveMapper.insertConfig(entity);
        }
        return 0;
    }
    @Override
    public ResultData deleteComment(Integer id, SysUser sysUser) {
        if (sysUser.getUserType().equals("1") || sysUser.getIsDivisionHead().equals("1")) {
            GuideRepairOrder guideRepairOrder = baseMapper.selectOne(new QueryWrapper<GuideRepairOrder>().lambda().eq(GuideRepairOrder::getId, id));
            if (guideRepairOrder!=null&&guideRepairOrder.getState().equals("3")) {
                guideRepairOrder.setIsHideComments(1);
                baseMapper.updateById(guideRepairOrder);
                //新增删除评论进展
                GuideEvolveEntity entity = new GuideEvolveEntity();
                entity.setCreateTime(LocalDateTime.now());
                entity.setUpdateTime(LocalDateTime.now());
                entity.setState("14");
                entity.setFromUserId(sysUser.getUserId() + "");
                entity.setGuideId(guideRepairOrder.getId().toString());
                guideEvolveMapper.insertConfig(entity);
                baseMapper.updateById(guideRepairOrder);
                return ResultData.success("删除评论成功");
            } else {
             return   ResultData.error("已办结的单据才能进行删除评论操作");
            }
        } else {
            return ResultData.error("只能部门领导和超级管理员才能删除评论");
        }
    }
}