From dc2080c44037447fdcf270541e09f0b017833c5e Mon Sep 17 00:00:00 2001 From: fengjin <1435304038@qq.com> Date: 星期一, 07 十一月 2022 16:37:48 +0800 Subject: [PATCH] 修改Bug --- flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java | 138 +++++++++++++++++++++++++++++++++++++++------- 1 files changed, 117 insertions(+), 21 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 d9da9ee..3c26140 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,8 +4,10 @@ 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; @@ -13,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; @@ -45,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) { @@ -74,12 +85,12 @@ } 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()); } - List<SysUser> sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, "," + transactionEvent.getClassifyId(), transactionEvent.getClassifyId() + ",");//获取导半人员 + List<SysUser> sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, "," + transactionEvent.getId(), transactionEvent.getId() + ",");//获取导半人员 if (sysUsers.size() == 0) {//如果此所属地区部门没有导半人员则看其下级地区有没有相关分类导办人员 for (OrganizationChartEntity organizationChart : organizationChartEntities) { //获取下级部门 @@ -88,12 +99,28 @@ 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"); + 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用了升序排序所以第一条就是待办结最少的人员之一 @@ -110,8 +137,8 @@ entity.setState("8"); entity.setDepartmentalId(sysUser.getDepartmentId()); entity.setToUserId(guideRepairOrder.getGuideUserId() + ""); - entity.setFromUserId(guideRepairOrder.getSubmitUserId()); - entity.setFromDepartmentalId(guideRepairOrder.getGuideDepartmentId()); +// entity.setFromUserId(guideRepairOrder.getSubmitUserId()); +// entity.setFromDepartmentalId(guideRepairOrder.getGuideDepartmentId()); entity.setGuidOrderNum(guideRepairOrder.getOrderNum()); //超时时间设置业务开始 guideRepairOrder = this.setTimeoutTim(guideRepairOrder); @@ -201,13 +228,20 @@ @Override public List<GuideRepairOrder> selectConfigList(IPage<GuideRepairOrder> page, Integer state, - String matterName, List<String> ids,String status) { - return baseMapper.selectConfigList(page, state, matterName, ids,status); + String matterName, List<String> ids, String status, + String guideUserId) { + return baseMapper.selectConfigList(page, state, matterName, ids, status, guideUserId); } @Override - public int countConfigList(String matterName, List<String> ids,String status) { - return baseMapper.countConfigList(matterName, ids,status); + public List<GuideRepairOrder> selectConfigList(String matterName, List<String> ids, String status, + String 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); } @Override @@ -233,8 +267,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); - sysUserFrom.setTransactionNum(sysUserFrom.getTransactionNum() - 1); - sysUserMapper.updateById(sysUserFrom); + 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())); //短信发送 @@ -248,7 +284,7 @@ sysUserFrom.setTransactionNum(sysUserFrom.getTransactionNum() - 1); return sysUserMapper.updateById(sysUserFrom); } - } + } return 0; } @@ -262,8 +298,9 @@ @Override public int countStatisticsNum(String state, List<String> ids, String time, String isTimeout, String evaluateState, - List<String> classifyIds,String serviceState) { - return baseMapper.countStatisticsNum(state, ids, time, isTimeout, evaluateState, classifyIds,serviceState); + List<String> classifyIds, String serviceState, + String guideUserId) { + return baseMapper.countStatisticsNum(state, ids, time, isTimeout, evaluateState, classifyIds, serviceState, guideUserId); } @Override @@ -306,7 +343,7 @@ 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), + calendar.get(Calendar.MONTH) + 1, calendar.get(Calendar.DATE), 9 + automessageSysSettings.getTimeoutNotificationNum(), 0);//设置时间为下一个工作日时间的9点+设置超时时间 guideRepairOrder.setTimeoutTime(localDateTime); } @@ -315,7 +352,7 @@ 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), + calendar.get(Calendar.MONTH) + 1, calendar.get(Calendar.DATE), 9 + automessageSysSettings.getTimeoutNotificationNum(), 0);//设置时间为下一个工作日时间的9点+设置超时时间 guideRepairOrder.setTimeoutTime(localDateTime); } @@ -327,7 +364,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(); } catch (Exception e) { throw new RuntimeException(e); } @@ -337,8 +374,67 @@ @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())); + 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().toString(); + } catch (Exception e) { + throw new RuntimeException(e); + } + for (GuideRepairOrder guideRepairOrder : guideRepairOrders) { + SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, guideRepairOrder.getGuideUserId())); + if (sysUser != null) { + smsUtil.sendSmsOvertime(sysUser.getPhonenumber(), sysUser.getUserName()); + wxUtil.sendGuideRepairOrderOvertime(sysUser.getOpenid(), accessToken, "86JgWHhR8b1XxD72WYqMnndyfkiMtSSoCk9NFMwLEZ8", sysUser); + guideRepairOrder.setIsPush(1); + guideRepairOrder.setIsTimeout("2"); + 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; + } + } -- Gitblit v1.7.1