From 08f1b1f1804a8bd833d42f257908d80e88387b55 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 14 三月 2025 11:27:47 +0800
Subject: [PATCH] 3.5增加登录验证、修改密码、人员列表调整

---
 flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java |  526 +++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 431 insertions(+), 95 deletions(-)

diff --git a/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java
index 8a45c67..cc2b165 100644
--- a/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java
+++ b/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java
@@ -1,39 +1,70 @@
 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.*;
+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;
+    private OrganizationChartMapper organizationChartMapper;
+
+    @Resource
+    private GuideEvolveMapper guideEvolveMapper;
+
+    @Resource
+    private AutomessageSysSettingsMapper iSysSettingsMapper;
+
+
+    @Resource
+    private  AreaCode2022Mapper areaCode2022Mapper;
+
+
+    @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()));
@@ -41,109 +72,160 @@
         guideRepairOrder.setMatterName(transactionEvent.getMatterName());
         guideRepairOrder.setDepartmentId(transactionEvent.getDepartmentId());
         guideRepairOrder.setClassifyId(transactionEvent.getClassifyId());
-        List<String> departmentIds=new ArrayList<>();
-        //自动分配业务代码开始
-        List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectByCode(guideRepairOrder.getAreaCode());
-        if (organizationChartEntities!=null){
-            for (OrganizationChartEntity organizationChart:organizationChartEntities) {
-                departmentIds.add(organizationChart.getId().toString());
-            }
-            List<SysUser> sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, "," + transactionEvent.getClassifyId(), transactionEvent.getClassifyId() + ",");//获取导半人员
-            if (sysUsers==null) {//如果此所属地区部门没有导半人员则看其下级地区有没有相关分类导办人员
-                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.getClassifyId(), transactionEvent.getClassifyId() + ",");//获取导半人员
-                if (sysUsers==null){//如果其下级部门仍没有该分类的导半人员则查询所以该所属地区的导办人员
-                    sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds,null,null);//获取导半人员
-                    if(sysUsers==null)//如果该所属地区没有导办人员则为特殊单据需要手动分配
-                        guideRepairOrder.setState("1");
+        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 (sysUsers!=null){//系统分配导办人员
-                SysUser sysUser = sysUsers.get(0);//因为sql用了升序排序所以第一条就是待办结最少的人员之一
-                guideRepairOrder.setState("2");
-                guideRepairOrder.setGuideUserId(sysUser.getUserId().toString());
-                guideRepairOrder.setGuideDepartmentId(sysUser.getDepartmentId());
-                //新增分配记录
-                GuideEvolveEntity entity=new GuideEvolveEntity();
-                entity.setCreateTime(LocalDateTime.now());
-                entity.setUpdateTime(LocalDateTime.now());
-                entity.setState("10");
-                entity.setDepartmentalId(sysUser.getDepartmentId());
-                entity.setToUserId(guideRepairOrder.getGuideUserId()+"");
-                entity.setFromUserId(guideRepairOrder.getSubmitUserId());
-                entity.setFromDepartmentalId(guideRepairOrder.getGuideDepartmentId());
-                entity.setGuideId(guideRepairOrder.getId().toString());
-                guideEvolveMapper.insertConfig(entity);
+        }
+        if (isAdd) {
+            AreaCode2022 areaCode2022 = areaCode2022Mapper.selectOne(new QueryWrapper<AreaCode2022>().lambda().eq(AreaCode2022::getCode, guideRepairOrder.getAreaCode()));
+            Integer grade=2;
+            if (areaCode2022.getLevel()==2){
+                grade=1;
             }
-        }
-        else{//如果该办事指南用户所选所属地区无导半部门则为特殊单据需要手动分配
-           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);
-          }
-        }
-        //保存视频地址
-        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;
+            //自动分配业务代码开始
+            List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectByCode(transactionEvent.getDepartmentId(), guideRepairOrder.getAreaCode(),grade);
+            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.sendSmsSubmitNew(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) {
+    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);
+            if (organizationChartEntitiesUser != null)
+                departmentIds = this.getDepartmentIds(organizationChartEntitiesUser, departmentIds);
 
         }
-        return  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);
     }
 
@@ -153,13 +235,267 @@
     }
 
     @Override
-    public List<GuideRepairOrder> selectConfigList(IPage<GuideRepairOrder> page, Integer state, String matterName,List<String> ids) {
-        return baseMapper.selectConfigList(page,state,matterName, ids);
+    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,List<String> ids) {
-        return baseMapper.countConfigList(matterName,ids);
+    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.sendSmsSubmitNew(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.sendSmsSubmitNew(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) {
+            List<SysUser> sysUsers = sysUserMapper.selectList(new QueryWrapper<SysUser>().lambda().eq(SysUser::getDepartmentId, guideRepairOrder.getGuideDepartmentId()).eq(SysUser::getIsDivisionHead, 1));
+            if (sysUsers != null && sysUsers.size() > 0) {
+                for (SysUser sysUser : sysUsers) {
+//            transactionEventMapper.selectOne(new QueryWrapper<TransactionEvent>().lambda().eq(TransactionEvent::getId, guideRepairOrder.getMatterId()));
+            SysUser sysUserGuideUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, guideRepairOrder.getGuideUserId()));
+                    if (sysUser != null) {
+                        smsUtil.sendSmsOvertimeNew(sysUser.getPhonenumber(), sysUserGuideUser.getUserName());
+                        wxUtil.sendGuideRepairOrderOvertime(sysUser.getOpenid(), accessToken, "86JgWHhR8b1XxD72WYqMnndyfkiMtSSoCk9NFMwLEZ8", sysUser);
+                        guideRepairOrder.setIsPush(1);
+                        guideRepairOrder.setIsTimeout("2");
+                        baseMapper.updateById(guideRepairOrder);
+                    }
+                }
+            }
+
+        }
+        return ResultData.success();
+    }
+
+    @Override
+    public ResultData  pushNoticeTimeRepairOrder(){
+        AutomessageSysSettings automessageSysSettings = iSysSettingsMapper.selectOne(
+                new QueryWrapper<AutomessageSysSettings>().lambda()
+                        .eq(AutomessageSysSettings::getSettingName, "系统超时基础设置"));
+        Integer timeoutRemindNum = automessageSysSettings.getTimeoutRemindNum();
+        List<GuideRepairOrder> guideRepairOrders = baseMapper.selectNoticeTime(timeoutRemindNum);
+        for (GuideRepairOrder guideRepairOrder:guideRepairOrders){
+            SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, guideRepairOrder.getGuideUserId()));
+            if (sysUser != null) {
+                smsUtil.sendSmsOvertimeRemind(sysUser.getPhonenumber(), sysUser.getUserName());
+                guideRepairOrder.setIsRemindPush(1);
+                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("只能部门领导和超级管理员才能删除评论");
+        }
+
     }
 
 

--
Gitblit v1.7.1