From 94e3a209bb9a31c4ddbd31494bb1628f6fe2e96e Mon Sep 17 00:00:00 2001
From: lidongdong <1459917685@qq.com>
Date: 星期三, 12 十月 2022 17:54:49 +0800
Subject: [PATCH] 新增首页工单 办事指南排行榜接口   导办人员排行榜接口  组织排行榜接口  新增办事指南统计接口   导办人员统计接口  组织胖行榜统计接口

---
 flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java |  137 +++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 125 insertions(+), 12 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 dc96213..ef73f95 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
@@ -4,20 +4,20 @@
 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.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.service.IGuideRepairOrderService;
+import com.dg.core.util.SmsUtil;
 import com.dg.core.util.Snowflake;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 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;
@@ -27,6 +27,15 @@
 
     @Resource
     private SysUserMapper sysUserMapper;
+    
+    @Resource
+    private OrganizationChartMapper  organizationChartMapper;
+
+    @Resource
+    private  GuideEvolveMapper guideEvolveMapper;
+
+    @Resource
+    SmsUtil smsUtil;
 
     @Override
     public  int addOrder(GuideRepairOrder guideRepairOrder){
@@ -37,10 +46,58 @@
         guideRepairOrder.setMatterName(transactionEvent.getMatterName());
         guideRepairOrder.setDepartmentId(transactionEvent.getDepartmentId());
         guideRepairOrder.setClassifyId(transactionEvent.getClassifyId());
-        guideRepairOrder.setState("1");
+        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.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());
+//                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) {
@@ -53,6 +110,7 @@
             guideRepairOrderImageMapper.insert(guideRepairOrderImage);
           }
         }
+        //保存视频地址
         if (guideRepairOrder.getVideo()!=null){
           if (guideRepairOrder.getOrderNum()!=null){
             GuideRepairOrderImage guideRepairOrderImage = new GuideRepairOrderImage();
@@ -64,6 +122,7 @@
             guideRepairOrderImageMapper.insert(guideRepairOrderImage);
         }
         }
+
         int ans= baseMapper.insert(guideRepairOrder);
         int i = transactionEventMapper.updateById(transactionEvent);
         if (ans>0&&i>0)
@@ -73,6 +132,18 @@
 
     }
 
+    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);
@@ -80,8 +151,11 @@
 
     @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,13 +165,52 @@
     }
 
     @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) {
+        return baseMapper.selectConfigList(page,state,matterName, ids);
     }
 
     @Override
-    public int countConfigList(String matterName) {
-        return baseMapper.countConfigList(matterName);
+    public int countConfigList(String matterName,List<String> ids) {
+        return baseMapper.countConfigList(matterName,ids);
+    }
+
+    @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);
+            sysUserMapper.updateById(sysUserFrom);
+            return  sysUserMapper.updateById(sysUserTo);
+       }
+        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);
+    }
+
+    @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()));
     }
 
 

--
Gitblit v1.7.1