From b69d2017fecdad6a1c9a09c0006e70ecea9efed0 Mon Sep 17 00:00:00 2001
From: fengjin <1435304038@qq.com>
Date: 星期一, 17 十月 2022 18:39:41 +0800
Subject: [PATCH] Merge branch 'zigonggao_dev' into huacheng_test

---
 flower_city/src/main/resources/mapper/AutomessageSysUserRecordMapper.xml                |    9 +
 flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java        |   13 -
 flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java        |   18 +-
 flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysUserRecordMapper.java |    6 
 flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java     |  321 ++++++++++++++++++++++++---------------
 flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java             |    7 
 flower_city/src/main/java/com/dg/core/util/TestDate.java                                |   21 ++
 flower_city/src/main/java/com/dg/core/util/WxUtil.java                                  |   15 +
 flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml                        |    5 
 flower_city/src/main/java/com/dg/core/service/impl/SysUserRecordServiceImpl.java        |    5 
 flower_city/src/main/java/com/dg/core/controller/CommonController.java                  |    2 
 flower_city/src/main/java/com/dg/core/interceptor/AuthorizationInterceptor.java         |    3 
 flower_city/src/main/java/com/dg/core/service/ISysUserRecordService.java                |    6 
 13 files changed, 277 insertions(+), 154 deletions(-)

diff --git a/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java b/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java
index e00f2cc..130adcc 100644
--- a/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java
+++ b/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java
@@ -174,7 +174,7 @@
         }
         if(StringUtils.equals(entity.getState(),"2")){//如果用户选择未解决则状态改为待办
             order.setState("2");
-            entity.setState("8");
+            entity.setState("9");
         }
         else if(StringUtils.equals(entity.getState(),"4")){
             if (order.getSubmitType().equals(1))//小程序提交
@@ -187,14 +187,14 @@
                 throw new RuntimeException(e);
             }
             SysUser submitUser = iGuideRepairOrderService.getSubmitUser(order);
-            wxUtil.sendGuideRepairOrderComplete(submitUser.getOpenid(),accessToken,guideRepairOrderCompleteTemplateId,order);
+            wxUtil.sendGuideRepairOrderComplete(submitUser.getOpenid(),accessToken,guideRepairOrderCompleteTemplateId,entity);
             }
             else if (order.getSubmitType().equals(2)){
                 smsUtil.sendSmsComplete(order.getConsultUserPhone(),order.getMatterName());
             }
             //待评价
             order.setState("4");
-            entity.setState("9");
+            entity.setState("7");
         }
         //新增已办结记录
         entity.setCreateTime(LocalDateTime.now());
@@ -203,6 +203,7 @@
         entity.setToUserId(order.getGuideUserId());
         entity.setGuideId(order.getId().toString());
         iGuideEvolveService.insertConfig(entity);
+        iGuideRepairOrderService.updateSysUserOrderNum(entity);
         return toAjax(iGuideRepairOrderService.updateConfig(order));
     }
 
@@ -271,12 +272,6 @@
         {
             return ResultData.error("工单id不能为空");
         }
-
-        if(!StringUtils.equals(entity.getState(),"4"))
-        {
-            return ResultData.error("该工单不能评价!");
-        }
-
         if(StringUtils.isEmpty(entity.getEvaluateState()))
         {
             return ResultData.error("满意程度不能为空!");
diff --git a/flower_city/src/main/java/com/dg/core/controller/CommonController.java b/flower_city/src/main/java/com/dg/core/controller/CommonController.java
index e3b0ba8..98d31e0 100644
--- a/flower_city/src/main/java/com/dg/core/controller/CommonController.java
+++ b/flower_city/src/main/java/com/dg/core/controller/CommonController.java
@@ -139,7 +139,7 @@
   }
 
   /**
-   * 通用上传请求(多个)
+   * 判断当前时间是否是工作日,格式为“2022-10-16”,不传默认为今天
    */
   @ApiOperation("判断当前时间是否是工作日,格式为“2022-10-16”,不传默认为今天")
   @GetMapping("/isWeekday")
diff --git a/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java b/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java
index 3e47c92..e87bcf7 100644
--- a/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java
+++ b/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java
@@ -134,9 +134,9 @@
         entity.setFromUserId(order.getGuideUserId());
         entity.setFromDepartmentalId(order.getGuideDepartmentId());
         entity.setGuideId(order.getId().toString());
-
+        iGuideRepairOrderService.updateSysUserOrderNum(entity);
         iGuideEvolveService.insertConfig(entity);
-
+        order=iGuideRepairOrderService.setTimeoutTim(order);
         return toAjax(iGuideRepairOrderService.updateConfig(order));
     }
 
@@ -179,8 +179,10 @@
         entity.setFromUserId(sysUser.getUserId()+"");
         entity.setFromDepartmentalId(sysUser.getDepartmentId());
         entity.setGuideId(order.getId().toString());
+        order=iGuideRepairOrderService.setTimeoutTim(order);
 
         iGuideEvolveService.insertConfig(entity);
+        iGuideRepairOrderService.updateSysUserOrderNum(entity);
 
         return toAjax(iGuideRepairOrderService.updateConfig(order));
     }
@@ -219,7 +221,7 @@
         }
         if(StringUtils.equals(entity.getState(),"2")){//如果用户选择未解决则状态改为待办
             order.setState("2");
-            entity.setState("8");
+            entity.setState("9");
         }
         else if(StringUtils.equals(entity.getState(),"4")){
             //待评价
@@ -233,13 +235,13 @@
                     throw new RuntimeException(e);
                 }
                 SysUser submitUser = iGuideRepairOrderService.getSubmitUser(order);
-                wxUtil.sendGuideRepairOrderComplete(submitUser.getOpenid(),accessToken,guideRepairOrderCompleteTemplateId,order);
+                wxUtil.sendGuideRepairOrderComplete(submitUser.getOpenid(),accessToken,guideRepairOrderCompleteTemplateId,entity);
             }
             else if (order.getSubmitType().equals(2)){
                 smsUtil.sendSmsComplete(order.getConsultUserPhone(),order.getMatterName());
             }
             order.setState("4");
-            entity.setState("9");
+            entity.setState("7");
         }
         //新增已办结记录
         entity.setCreateTime(LocalDateTime.now());
@@ -248,6 +250,7 @@
         entity.setFromUserId(sysUser.getUserId()+"");
         entity.setGuideId(order.getId().toString());
         iGuideEvolveService.insertConfig(entity);
+        iGuideRepairOrderService.updateSysUserOrderNum(entity);
         return toAjax(iGuideRepairOrderService.updateConfig(order));
     }
 
@@ -316,11 +319,6 @@
         if(entity.getId()<=0)
         {
             return ResultData.error("工单id不能为空");
-        }
-
-        if(!StringUtils.equals(entity.getState(),"4"))
-        {
-            return ResultData.error("该工单不能评价!");
         }
 
         if(StringUtils.isEmpty(entity.getEvaluateState()))
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysUserRecordMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysUserRecordMapper.java
index 84075a6..97122a6 100644
--- a/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysUserRecordMapper.java
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysUserRecordMapper.java
@@ -40,4 +40,10 @@
      */
     List<AppletUserCount> selectByYear();
 
+    /**
+     * 删除因为token问题产出的重复脏数据
+     * @return
+     */
+    Integer deleteDistinct();
+
 }
diff --git a/flower_city/src/main/java/com/dg/core/interceptor/AuthorizationInterceptor.java b/flower_city/src/main/java/com/dg/core/interceptor/AuthorizationInterceptor.java
index 3a8deb0..780c72d 100644
--- a/flower_city/src/main/java/com/dg/core/interceptor/AuthorizationInterceptor.java
+++ b/flower_city/src/main/java/com/dg/core/interceptor/AuthorizationInterceptor.java
@@ -85,7 +85,10 @@
                         newSysUser.setOpenid(huaChengSysUser.getOpenid());
                         IUserService.insertConfig(newSysUser);
                     }
+                    //新增浏览记录
                     iSysUserRecordService.add(sysUser);
+                    //删除因为token问题产出的重复脏数据
+                    iSysUserRecordService.deleteDistinct();
                 }
 
                 return true;
diff --git a/flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java b/flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java
index e07ad11..a34d696 100644
--- a/flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java
+++ b/flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java
@@ -86,4 +86,11 @@
      */
     SysUser getSubmitUser(GuideRepairOrder guideRepairOrder);
 
+
+    /**
+     * 设置超时时间
+     * @return
+     */
+    GuideRepairOrder setTimeoutTim(GuideRepairOrder guideRepairOrder);
+
 }
diff --git a/flower_city/src/main/java/com/dg/core/service/ISysUserRecordService.java b/flower_city/src/main/java/com/dg/core/service/ISysUserRecordService.java
index b0b2119..4423383 100644
--- a/flower_city/src/main/java/com/dg/core/service/ISysUserRecordService.java
+++ b/flower_city/src/main/java/com/dg/core/service/ISysUserRecordService.java
@@ -25,4 +25,10 @@
      * @return
      */
     ResultData selectByDateType(Integer dateType);
+
+    /**
+     * 删除因为token问题产出的重复脏数据
+     * @return
+     */
+    Integer deleteDistinct();
 }
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 388de7c..870c228 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,18 +1,25 @@
 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.db.gen.entity.*;
 import com.dg.core.db.gen.mapper.*;
 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 org.springframework.stereotype.Service;
 
 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
@@ -23,22 +30,25 @@
     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
     SmsUtil smsUtil;
 
     @Override
-    public  int addOrder(GuideRepairOrder guideRepairOrder){
+    public int addOrder(GuideRepairOrder guideRepairOrder) {
 
         TransactionEvent transactionEvent = transactionEventMapper.selectOne(new QueryWrapper<TransactionEvent>().lambda().
                 eq(TransactionEvent::getId, guideRepairOrder.getMatterId()));
@@ -46,131 +56,141 @@
         guideRepairOrder.setMatterName(transactionEvent.getMatterName());
         guideRepairOrder.setDepartmentId(transactionEvent.getDepartmentId());
         guideRepairOrder.setClassifyId(transactionEvent.getClassifyId());
-        List<String> departmentIds=new ArrayList<>();
-        Boolean isAdd=true;//是否能够新建工单
+        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;
+        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 (isAdd) {
-        //自动分配业务代码开始
-        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.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);
+        if (isAdd) {
+            //自动分配业务代码开始
+            List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectByCode(guideRepairOrder.getAreaCode());
+            if (organizationChartEntities != null) {
+                for (OrganizationChartEntity organizationChart : organizationChartEntities) {
+                    departmentIds.add(organizationChart.getId().toString());
                 }
-                sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, "," + transactionEvent.getClassifyId(), transactionEvent.getClassifyId() + ",");//获取导半人员
-                if (sysUsers.size()==0){//如果其下级部门仍没有该分类的导半人员则查询所以该所属地区的导办人员
-                    sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds,null,null);//获取导半人员
-                    if(sysUsers.size()==0)//如果该所属地区没有导办人员则为特殊单据需要手动分配
-                        guideRepairOrder.setState("1");
+                List<SysUser> sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, "," + transactionEvent.getClassifyId(), transactionEvent.getClassifyId() + ",");//获取导半人员
+                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.getClassifyId(), transactionEvent.getClassifyId() + ",");//获取导半人员
+                    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());
+                    //新增分配记录
+                    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.setGuidOrderNum(guideRepairOrder.getOrderNum());
+                    //超时时间设置业务开始
+                    guideRepairOrder=this.setTimeoutTim(guideRepairOrder);
+                    //超时时间设置业务结束
+                    //消息推送
+                    WxUtil wxUtil=new WxUtil();
+                    String accessToken="0";
+                    try {
+                        accessToken= wxUtil.getBatteryCarAccessToken();
+                    } catch (Exception e) {
+                        throw new RuntimeException(e);
+                    }
+                    wxUtil.sendGuideRepairOrderSubmit(sysUser.getOpenid(),accessToken,"WggWK_yG7_qfrTj8bQe-2co4ATgpXamLzT1xvrTu4K0",guideRepairOrder);
+//                    smsUtil.sendSmsOvertime(sysUser.getPhonenumber(),guideRepairOrder.getMatterName());
+                    guideEvolveMapper.insertConfig(entity);
+                }
+            } else {//如果该办事指南用户所选所属地区无导半部门则为特殊单据需要手动分配
+                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());
-                //新增分配记录
-                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.setGuidOrderNum(guideRepairOrder.getOrderNum());
-//                smsUtil.sendSmsOvertime(sysUser.getPhonenumber(),guideRepairOrder.getMatterName());
-                guideEvolveMapper.insertConfig(entity);
-            }
-        }
-        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
+            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;
+        } 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) {
-        if  ( order.getGuideUserId()!=null&&!order.getGuideUserId().equals(""))
-        {
+        if (order.getGuideUserId() != null && !order.getGuideUserId().equals("")) {
             SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getGuideUserId()));
             order.setGuideUserPhone(sysUser.getPhonenumber());
         }
@@ -183,57 +203,106 @@
     }
 
     @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) {
+        return baseMapper.selectConfigList(page, state, matterName, ids);
     }
 
     @Override
-    public int countConfigList(String matterName,List<String> ids) {
-        return baseMapper.countConfigList(matterName,ids);
+    public int countConfigList(String matterName, List<String> ids) {
+        return baseMapper.countConfigList(matterName, ids);
     }
 
     @Override
     public int countUser(String userId, String state) {
-        return baseMapper.countUser(userId,state);
+        return baseMapper.countUser(userId, state);
     }
 
     @Override
     public int updateSysUserOrderNum(GuideEvolveEntity order) {
-       if(order.getState().equals("13")){
-           SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getToUserId()));
-           sysUser.setTransactionNum(sysUser.getTransactionNum()+1);
-           return  sysUserMapper.updateById(sysUser);
-       }else if(order.getState().equals("12")){
-            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);
-            sysUserFrom.setTransactionNum(sysUserFrom.getTransactionNum()-1);
+        if (order.getState().equals("13")) {
+            SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getToUserId()));
+            sysUser.setTransactionNum(sysUser.getTransactionNum() + 1);
+            return sysUserMapper.updateById(sysUser);
+        } else if (order.getState().equals("12")) {
+            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);
+            sysUserFrom.setTransactionNum(sysUserFrom.getTransactionNum() - 1);
             sysUserMapper.updateById(sysUserFrom);
-            return  sysUserMapper.updateById(sysUserTo);
-       }
+            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) {
-        return baseMapper.countStatisticsNum(state,ids,time,isTimeout,evaluateState,classifyIds);
+    public int countStatisticsNum(String state, List<String> ids, String time,
+                                  String isTimeout, String evaluateState, List<String> classifyIds) {
+        return baseMapper.countStatisticsNum(state, ids, time, isTimeout, evaluateState, classifyIds);
     }
 
     @Override
     public List<CountListNum> countListNum(String state, List<String> ids, Integer time) {
-        return baseMapper.countListNum(state, ids,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()));
+    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();
+        if (td.isWeekday(dateTimeUser)){
+            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), 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), calendar.get(Calendar.DATE),
+                    9+automessageSysSettings.getTimeoutNotificationNum(),0);//设置时间为下一个工作日时间的9点+设置超时时间
+            guideRepairOrder.setTimeoutTime(localDateTime);
+        }
+        return guideRepairOrder;
     }
 
 
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/SysUserRecordServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/SysUserRecordServiceImpl.java
index 40a4143..c69de5f 100644
--- a/flower_city/src/main/java/com/dg/core/service/impl/SysUserRecordServiceImpl.java
+++ b/flower_city/src/main/java/com/dg/core/service/impl/SysUserRecordServiceImpl.java
@@ -58,4 +58,9 @@
         return null;
     }
 
+    @Override
+    public Integer deleteDistinct() {
+        return baseMapper.deleteDistinct();
+    }
+
 }
diff --git a/flower_city/src/main/java/com/dg/core/util/TestDate.java b/flower_city/src/main/java/com/dg/core/util/TestDate.java
index c80684f..0c31040 100644
--- a/flower_city/src/main/java/com/dg/core/util/TestDate.java
+++ b/flower_city/src/main/java/com/dg/core/util/TestDate.java
@@ -112,7 +112,7 @@
     }
 
     /**
-     * 判断改日期是否为工作日
+     * 判断该日期是否为工作日
      *
      * @param dateTime
      * @return
@@ -130,4 +130,23 @@
         return  true;
     }
 
+    /**
+     * 获取该日期的下个工作日是多少
+     *
+     * @param dateTime
+     * @return
+     */
+    public  DateTime nextWeekDay(DateTime dateTime){
+        TestDate td=new TestDate();
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(dateTime);
+        while (true){
+          calendar.add(calendar.DATE,1);
+          if (td.isWeekday(new DateTime(calendar))){
+              return new DateTime(calendar);//返回日期
+          }
+        }
+
+    }
+
 }
diff --git a/flower_city/src/main/java/com/dg/core/util/WxUtil.java b/flower_city/src/main/java/com/dg/core/util/WxUtil.java
index c75e205..fcf3365 100644
--- a/flower_city/src/main/java/com/dg/core/util/WxUtil.java
+++ b/flower_city/src/main/java/com/dg/core/util/WxUtil.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.dg.core.db.gen.entity.GuideEvolveEntity;
 import com.dg.core.db.gen.entity.GuideRepairOrder;
 import com.dg.core.db.manual.mapper.util.ConstantPropertiesUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -194,16 +195,16 @@
      * @param accessToken
      *            token会话标识
      */
-    public  void sendGuideRepairOrderComplete(String openId, String accessToken, String templateId, GuideRepairOrder guideRepairOrder){
+    public  void sendGuideRepairOrderComplete(String openId, String accessToken, String templateId, GuideEvolveEntity guideRepairOrder){
         WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
         subscribeDTO.setTouser(openId);
         subscribeDTO.setTemplate_id(templateId);
         subscribeDTO.setMiniprogram_state("formal");//测试,部署正式版本时候需要更改为formal
         List<TemplateParam> paras=new ArrayList<TemplateParam>();
         Calendar calendar = Calendar.getInstance();
-        paras.add(new TemplateParam("thing1",guideRepairOrder.getMatterName()));//业务办理类型
-        paras.add(new TemplateParam("thing3","已完成"));
-        paras.add(new TemplateParam("phrase8","待评价"));
+        paras.add(new TemplateParam("thing1","导办申请"));//业务办理类型
+        paras.add(new TemplateParam("thing3",guideRepairOrder.getRemark()));
+        paras.add(new TemplateParam("phrase8","已完成"));
         calendar.setTime(new Date());
         paras.add(new TemplateParam("time4",calendar.get(Calendar.YEAR)+"年"+(calendar.get(Calendar.MONTH)+1)+"月"+calendar.get(Calendar.DATE)+"日"));//结束日期
         subscribeDTO.setTemplateParamList(paras);
@@ -216,21 +217,21 @@
 
 
     /**
-     * 工单超时推送
+     * 工单提交推送
      *
      * @param openId
      *            用户openid
      * @param accessToken
      *            token会话标识
      */
-    public  void sendGuideRepairOrderOvertime(String openId, String accessToken, String templateId, GuideRepairOrder guideRepairOrder){
+    public  void sendGuideRepairOrderSubmit(String openId, String accessToken, String templateId, GuideRepairOrder guideRepairOrder){
         WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
         subscribeDTO.setTouser(openId);
         subscribeDTO.setTemplate_id(templateId);
         subscribeDTO.setMiniprogram_state("formal");//测试,部署正式版本时候需要更改为formal
         List<TemplateParam> paras=new ArrayList<TemplateParam>();
         Calendar calendar = Calendar.getInstance();
-        paras.add(new TemplateParam("thing4","给您分配的工单:'"+guideRepairOrder.getMatterName()+"',已超时请即使处理"));//超时提示内容
+        paras.add(new TemplateParam("thing4","您有一个新的导办工单需要处理"));//超时提示内容
         paras.add(new TemplateParam("thing2",guideRepairOrder.getConsultUserName()));//咨询人
         paras.add(new TemplateParam("thing3",guideRepairOrder.getConsultContent()));//咨询内容
         subscribeDTO.setTemplateParamList(paras);
diff --git a/flower_city/src/main/resources/mapper/AutomessageSysUserRecordMapper.xml b/flower_city/src/main/resources/mapper/AutomessageSysUserRecordMapper.xml
index f3f7756..ae677ea 100644
--- a/flower_city/src/main/resources/mapper/AutomessageSysUserRecordMapper.xml
+++ b/flower_city/src/main/resources/mapper/AutomessageSysUserRecordMapper.xml
@@ -162,4 +162,13 @@
         GROUP BY d.date
     </select>
 
+<!--    删除因为token问题产出的重复脏数据-->
+    <delete id="deleteDistinct" parameterType="string">
+        DELETE FROM automessage_sys_user_record where id in
+                    (select id FROM(
+                        Select id,user_id,DATE_FORMAT(create_time,'%Y-%m-%d')create_time
+                        From automessage_sys_user_record Group By user_id,DATE_FORMAT(create_time,'%Y-%m-%d')  Having Count(*)>1)
+                        k)
+    </delete>
+
 </mapper>
diff --git a/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml b/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml
index 49b2413..d441087 100644
--- a/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml
+++ b/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml
@@ -30,6 +30,8 @@
         <id     property="video"      column="video"      />
         <id     property="isTimeout"      column="is_timeout"      />
         <id     property="submitType"      column="submit_type"      />
+        <id     property="timeoutTime"      column="timeout_time"      />
+        <id     property="isPush"      column="is_push"      />
     </resultMap>
 
     <sql id="selectGuideRepairOrderVo">
@@ -39,6 +41,8 @@
             matter_id,
             submit_type,
             matter_name,
+            timeout_time,
+            is_push,
             (select organization_name from automessage_organization_chart where a.department_id=id)organizationName,
             concat(
                     (select classify_name from  automessage_classify_administration  where id=(select parent_id from  automessage_classify_administration  where id=a.classify_id)),
@@ -139,6 +143,7 @@
             <if test="suggest != null and suggest != '' ">suggest=#{suggest},</if>
             <if test="serviceState != null  ">service_state=#{serviceState},</if>
             <if test="isTimeout != null  ">is_timeout=#{isTimeout},</if>
+            <if test="timeoutTime != null  ">timeout_time=#{timeoutTime},</if>
             update_time=sysdate()
         </set>
         where  id= #{id}

--
Gitblit v1.7.1