From 3d8f0071da8fd8282f7dc77d8482e3c3076efafb Mon Sep 17 00:00:00 2001
From: fengjin <1435304038@qq.com>
Date: 星期二, 01 十一月 2022 18:01:09 +0800
Subject: [PATCH] 1.修改搜索bug2.修改自动分配逻辑

---
 flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java |   78 +++++++++++++++++++++++++--------------
 1 files changed, 50 insertions(+), 28 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 d1f153a..a474dfa 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
@@ -7,6 +7,7 @@
 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;
@@ -14,8 +15,10 @@
 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;
@@ -46,8 +49,15 @@
     @Resource
     private AutomessageSysSettingsMapper iSysSettingsMapper;
 
+
     @Resource
     SmsUtil smsUtil;
+
+    @Resource(name = "stringRedisTemplate")
+    private StringRedisTemplate stringRedisTemplate;
+
+    private static WxUtil wxUtil;
+
 
     @Override
     public int addOrder(GuideRepairOrder guideRepairOrder) {
@@ -75,7 +85,7 @@
         }
         if (isAdd) {
             //自动分配业务代码开始
-            List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectByCode(transactionEvent.getDepartmentId(),guideRepairOrder.getAreaCode());
+            List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectByCode(transactionEvent.getDepartmentId(), guideRepairOrder.getAreaCode());
             if (organizationChartEntities.size() > 0) {
                 for (OrganizationChartEntity organizationChart : organizationChartEntities) {
                     departmentIds.add(organizationChart.getId().toString());
@@ -90,11 +100,24 @@
                             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) {//如果该所属地区没有导办人员则为获取其上級地区有没有相关分类导办人员
+                        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()));
+                            departmentIds.add(organizationChartParent.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");
+                            }
+                        }
                     }
+
                 }
                 if (sysUsers.size() > 0) {//系统分配导办人员
                     SysUser sysUser = sysUsers.get(0);//因为sql用了升序排序所以第一条就是待办结最少的人员之一
@@ -202,20 +225,20 @@
 
     @Override
     public List<GuideRepairOrder> selectConfigList(IPage<GuideRepairOrder> page, Integer state,
-                                                   String matterName, List<String> ids,String status,
+                                                   String matterName, List<String> ids, String status,
                                                    String guideUserId) {
-        return baseMapper.selectConfigList(page, state, matterName, ids,status,guideUserId);
+        return baseMapper.selectConfigList(page, state, matterName, ids, status, guideUserId);
     }
 
     @Override
-    public List<GuideRepairOrder> selectConfigList(String matterName, List<String> ids,String status,
+    public List<GuideRepairOrder> selectConfigList(String matterName, List<String> ids, String status,
                                                    String guideUserId) {
-        return baseMapper.selectConfigList(matterName, ids,status,guideUserId);
+        return baseMapper.selectConfigList(matterName, ids, status, guideUserId);
     }
 
     @Override
-    public int countConfigList(String matterName, List<String> ids,String status,String guideUserId) {
-        return baseMapper.countConfigList(matterName, ids,status,guideUserId);
+    public int countConfigList(String matterName, List<String> ids, String status, String guideUserId) {
+        return baseMapper.countConfigList(matterName, ids, status, guideUserId);
     }
 
     @Override
@@ -241,7 +264,7 @@
                 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)){
+                if (sysUserFrom.getUserType().equals(2)) {
                     sysUserFrom.setTransactionNum(sysUserFrom.getTransactionNum() - 1);
                     sysUserMapper.updateById(sysUserFrom);
                 }
@@ -258,7 +281,7 @@
                 sysUserFrom.setTransactionNum(sysUserFrom.getTransactionNum() - 1);
                 return sysUserMapper.updateById(sysUserFrom);
             }
-         }
+        }
         return 0;
     }
 
@@ -272,9 +295,9 @@
     @Override
     public int countStatisticsNum(String state, List<String> ids, String time,
                                   String isTimeout, String evaluateState,
-                                  List<String> classifyIds,String serviceState,
+                                  List<String> classifyIds, String serviceState,
                                   String guideUserId) {
-        return baseMapper.countStatisticsNum(state, ids, time, isTimeout, evaluateState, classifyIds,serviceState,guideUserId);
+        return baseMapper.countStatisticsNum(state, ids, time, isTimeout, evaluateState, classifyIds, serviceState, guideUserId);
     }
 
     @Override
@@ -317,7 +340,7 @@
                 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),
+                        calendar.get(Calendar.MONTH) + 1, calendar.get(Calendar.DATE),
                         9 + automessageSysSettings.getTimeoutNotificationNum(), 0);//设置时间为下一个工作日时间的9点+设置超时时间
                 guideRepairOrder.setTimeoutTime(localDateTime);
             }
@@ -326,7 +349,7 @@
             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),
+                    calendar.get(Calendar.MONTH) + 1, calendar.get(Calendar.DATE),
                     9 + automessageSysSettings.getTimeoutNotificationNum(), 0);//设置时间为下一个工作日时间的9点+设置超时时间
             guideRepairOrder.setTimeoutTime(localDateTime);
         }
@@ -338,7 +361,7 @@
         WxUtil wxUtil = new WxUtil();
         String accessToken = "0";
         try {
-            accessToken = wxUtil.getBatteryCarAccessToken();
+            accessToken = stringRedisTemplate.boundValueOps("access_token:access_token:" + ConstantPropertiesUtil.WX_OPEN_APP_ID).get().toString();
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
@@ -352,13 +375,13 @@
         //删除进展记录
         guideEvolveMapper.delete(new QueryWrapper<GuideEvolveEntity>().lambda().eq(GuideEvolveEntity::getGuideId, Id));
         TransactionEvent transactionEvent = transactionEventMapper.selectOne(new QueryWrapper<TransactionEvent>().lambda().eq(TransactionEvent::getId, guideRepairOrderDelete.getMatterId()));
-        transactionEvent.setTransactionNum(transactionEvent.getTransactionNum()-1);
+        transactionEvent.setTransactionNum(transactionEvent.getTransactionNum() - 1);
         //对应办事指南减一
         transactionEventMapper.updateById(transactionEvent);
         SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, guideRepairOrderDelete.getGuideUserId()));
-        if (sysUser!=null){
+        if (sysUser != null) {
             //对应导半人员待导半数量建议
-            sysUser.setTransactionNum(sysUser.getTransactionNum()-1);
+            sysUser.setTransactionNum(sysUser.getTransactionNum() - 1);
             sysUserMapper.updateById(sysUser);
         }
         return baseMapper.deleteConfigById(Id);
@@ -370,16 +393,15 @@
         WxUtil wxUtil = new WxUtil();
         String accessToken = "0";
         try {
-            accessToken = wxUtil.getBatteryCarAccessToken();
+            accessToken = stringRedisTemplate.boundValueOps("access_token:access_token:" + ConstantPropertiesUtil.WX_OPEN_APP_ID).get().toString();
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
-        for (GuideRepairOrder guideRepairOrder:guideRepairOrders) {
+        for (GuideRepairOrder guideRepairOrder : guideRepairOrders) {
             SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, guideRepairOrder.getGuideUserId()));
-            if (sysUser!=null)
-            {
+            if (sysUser != null) {
                 smsUtil.sendSmsOvertime(sysUser.getPhonenumber(), sysUser.getUserName());
-                wxUtil.sendGuideRepairOrderOvertime(sysUser.getOpenid(),accessToken,"86JgWHhR8b1XxD72WYqMnndyfkiMtSSoCk9NFMwLEZ8",sysUser);
+                wxUtil.sendGuideRepairOrderOvertime(sysUser.getOpenid(), accessToken, "86JgWHhR8b1XxD72WYqMnndyfkiMtSSoCk9NFMwLEZ8", sysUser);
                 guideRepairOrder.setIsPush(1);
                 guideRepairOrder.setIsTimeout("2");
                 baseMapper.updateById(guideRepairOrder);
@@ -392,7 +414,7 @@
     public int updateEvaluate() {
         //查找一天没有评价的单据
         List<GuideRepairOrder> guideRepairOrders = baseMapper.selectEvaluate();
-        for (GuideRepairOrder guideRepairOrder:guideRepairOrders) {
+        for (GuideRepairOrder guideRepairOrder : guideRepairOrders) {
             guideRepairOrder.setEvaluateState("1");
             guideRepairOrder.setEvaluateContent("好评");
             guideRepairOrder.setServiceState(1);
@@ -403,7 +425,7 @@
             entity.setCreateTime(LocalDateTime.now());
             entity.setUpdateTime(LocalDateTime.now());
             entity.setState("12");
-            entity.setFromUserId(guideRepairOrder.getSubmitUserId()+"");
+            entity.setFromUserId(guideRepairOrder.getSubmitUserId() + "");
             entity.setGuideId(guideRepairOrder.getId().toString());
             guideEvolveMapper.insertConfig(entity);
 

--
Gitblit v1.7.1