fengjin
2022-11-01 3d8f0071da8fd8282f7dc77d8482e3c3076efafb
1.修改搜索bug2.修改自动分配逻辑
6个文件已修改
115 ■■■■■ 已修改文件
flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/util/WxUtil.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/resources/mapper/OrganizationChartMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/resources/mapper/TransactionEventMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java
@@ -9,6 +9,7 @@
import com.dg.core.db.gen.entity.GuideEvolveEntity;
import com.dg.core.db.gen.entity.GuideRepairOrder;
import com.dg.core.db.gen.entity.SysUser;
import com.dg.core.db.manual.mapper.util.ConstantPropertiesUtil;
import com.dg.core.service.IGuideEvolveService;
import com.dg.core.service.IGuideRepairOrderService;
import com.dg.core.service.IOrganizationChartService;
@@ -20,6 +21,7 @@
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*;
@@ -44,6 +46,9 @@
    @Resource
    IOrganizationChartService iOrganizationChartService;
    @Resource(name = "stringRedisTemplate")
    private StringRedisTemplate stringRedisTemplate;
    private static String guideRepairOrderCompleteTemplateId = "7ZCHHii87rWPwVkdhZnvNiYbYi_Buq0NXO10cmUhAFk";
@@ -184,7 +189,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);
            }
flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java
@@ -7,6 +7,7 @@
import com.dg.core.annotation.Authorization;
import com.dg.core.annotation.CurrentUser;
import com.dg.core.db.gen.entity.*;
import com.dg.core.db.manual.mapper.util.ConstantPropertiesUtil;
import com.dg.core.service.IGuideEvolveService;
import com.dg.core.service.IGuideRepairOrderService;
import com.dg.core.service.IOrganizationChartService;
@@ -18,6 +19,7 @@
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*;
@@ -42,6 +44,9 @@
    @Autowired
    IOrganizationChartService iOrganizationChartService;
    @Resource(name = "stringRedisTemplate")
    private StringRedisTemplate stringRedisTemplate;
    private static String guideRepairOrderCompleteTemplateId = "7ZCHHii87rWPwVkdhZnvNiYbYi_Buq0NXO10cmUhAFk";
@@ -231,7 +236,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);
                }
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);
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.annotation.Authorization;
import com.dg.core.db.gen.entity.GuideEvolveEntity;
import com.dg.core.db.gen.entity.GuideRepairOrder;
import com.dg.core.db.gen.entity.SysUser;
@@ -17,7 +18,9 @@
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.io.BufferedReader;
import java.io.IOException;
@@ -32,8 +35,16 @@
    private static String miniprogramState="trial";//trial 为测试版  formal 为正式版 切记发布版本时候改为正式版
    @Resource
    StringRedisTemplate stringRedisTemplate;
    @Resource(name = "stringRedisTemplate")
    private StringRedisTemplate stringRedisTemplate;
    private static WxUtil wxUtil;
    @PostConstruct
    public void init() {
        wxUtil = this;
        wxUtil.stringRedisTemplate = this.stringRedisTemplate;
    }
    /**
     * 获取花城token,(ps:0=token获取失败)
@@ -55,7 +66,7 @@
//        } catch (IOException ioe) {
//            ioe.printStackTrace();
//        }
        accessToken =stringRedisTemplate.boundValueOps("access_token:access_token:" + ConstantPropertiesUtil.WX_OPEN_APP_ID).get().toString();
        accessToken =wxUtil.stringRedisTemplate.boundValueOps("access_token:access_token:" + ConstantPropertiesUtil.WX_OPEN_APP_ID).get().toString();
        return accessToken;
    }
flower_city/src/main/resources/mapper/OrganizationChartMapper.xml
@@ -102,9 +102,9 @@
    <select id="selectByKeyWord" resultMap="OrganizationChartResult">
        <include refid="selectOrganizationChartVo"/>
        where organization_name like concat('%', #{keyWord}, '%')
        where grade=1 and ( organization_name like concat('%', #{keyWord}, '%')
        or((detailed_address like concat('%', #{keyWord}, '%')  )     and TRIM(detailed_address)  !='')
        or((resume like concat('%', #{keyWord}, '%')  ) and  TRIM(resume)  !=  '' )
        or((resume like concat('%', #{keyWord}, '%')  ) and  TRIM(resume)  !=  '' ))
    </select>
    <select id="selectByCode" resultMap="OrganizationChartResult">
flower_city/src/main/resources/mapper/TransactionEventMapper.xml
@@ -431,7 +431,7 @@
    <select id="selectSearch" resultType="com.dg.core.db.manual.pojo.Search">
        select  id,title,content,views, type FROM(
                 select  id,organization_name title,resume content,null views,1 type  from   automessage_organization_chart  UNION
                 select  id,organization_name title,resume content,null views,1 type  from   automessage_organization_chart where grade=1  UNION
                 select  id,matter_name title,concat((select classify_name from  automessage_classify_administration
                                                      where id=(select parent_id from  automessage_classify_administration  where id=automessage_transaction_event.classify_id)),
                                                     '>',(select classify_name from  automessage_classify_administration  where id=automessage_transaction_event.classify_id)) content,