| | |
| | | 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.service.IGuideRepairOrderService; |
| | |
| | | import com.dg.core.util.Snowflake; |
| | | import com.dg.core.util.TestDate; |
| | | import com.dg.core.util.WxUtil; |
| | | import com.iceyyy.workday.WorkUtils; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | } |
| | | if (isAdd) { |
| | | //自动分配业务代码开始 |
| | | List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectByCode(guideRepairOrder.getAreaCode()); |
| | | if (organizationChartEntities != null) { |
| | | List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectByCode(transactionEvent.getDepartmentId(),guideRepairOrder.getAreaCode()); |
| | | if (organizationChartEntities.size() > 0) { |
| | | for (OrganizationChartEntity organizationChart : organizationChartEntities) { |
| | | departmentIds.add(organizationChart.getId().toString()); |
| | | } |
| | |
| | | GuideEvolveEntity entity = new GuideEvolveEntity(); |
| | | entity.setCreateTime(LocalDateTime.now()); |
| | | entity.setUpdateTime(LocalDateTime.now()); |
| | | entity.setState("10"); |
| | | 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); |
| | | guideRepairOrder = this.setTimeoutTim(guideRepairOrder); |
| | | //超时时间设置业务结束 |
| | | //消息推送 |
| | | this.sendGuideRepairOrderSubmit(sysUser.getOpenid(),guideRepairOrder); |
| | | this.sendGuideRepairOrderSubmit(sysUser.getOpenid(), guideRepairOrder); |
| | | //短信发送 |
| | | smsUtil.sendSmsSubmit(sysUser.getPhonenumber(), sysUser.getUserName()); |
| | | guideEvolveMapper.insertConfig(entity); |
| | | } |
| | | } else {//如果该办事指南用户所选所属地区无导半部门则为特殊单据需要手动分配 |
| | |
| | | } |
| | | |
| | | @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,String status, |
| | | String guideUserId) { |
| | | return baseMapper.selectConfigList(page, state, matterName, ids,status,guideUserId); |
| | | } |
| | | |
| | | @Override |
| | | public int countConfigList(String matterName, List<String> ids) { |
| | | return baseMapper.countConfigList(matterName, ids); |
| | | 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 |
| | |
| | | |
| | | @Override |
| | | public int updateSysUserOrderNum(GuideEvolveEntity order) { |
| | | if (order.getState().equals("11")) { |
| | | SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getToUserId())); |
| | | GuideRepairOrder guideRepairOrder = baseMapper.selectOne(new QueryWrapper<GuideRepairOrder>().lambda() |
| | | .eq(GuideRepairOrder::getId, order.getGuideId())); |
| | | if (guideRepairOrder!=null){ |
| | | this.sendGuideRepairOrderSubmit(sysUser.getOpenid(),guideRepairOrder); |
| | | if (order.getState() != null) { |
| | | if (order.getState().equals("11")) { |
| | | SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getToUserId())); |
| | | GuideRepairOrder guideRepairOrder = baseMapper.selectOne(new QueryWrapper<GuideRepairOrder>().lambda() |
| | | .eq(GuideRepairOrder::getId, order.getGuideId())); |
| | | if (guideRepairOrder != null) { |
| | | this.sendGuideRepairOrderSubmit(sysUser.getOpenid(), guideRepairOrder); |
| | | } |
| | | //短信发送 |
| | | smsUtil.sendSmsSubmit(sysUser.getPhonenumber(), sysUser.getUserName()); |
| | | sysUser.setTransactionNum(sysUser.getTransactionNum() + 1); |
| | | return sysUserMapper.updateById(sysUser); |
| | | } else if (order.getState().equals("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); |
| | | GuideRepairOrder guideRepairOrder = baseMapper.selectOne(new QueryWrapper<GuideRepairOrder>().lambda() |
| | | .eq(GuideRepairOrder::getId, order.getGuideId())); |
| | | //短信发送 |
| | | smsUtil.sendSmsSubmit(sysUserTo.getPhonenumber(), sysUserTo.getUserName()); |
| | | if (guideRepairOrder != null) { |
| | | this.sendGuideRepairOrderSubmit(sysUserTo.getOpenid(), guideRepairOrder); |
| | | } |
| | | 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); |
| | | } |
| | | sysUser.setTransactionNum(sysUser.getTransactionNum() + 1); |
| | | return sysUserMapper.updateById(sysUser); |
| | | } else if (order.getState().equals("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); |
| | | GuideRepairOrder guideRepairOrder = baseMapper.selectOne(new QueryWrapper<GuideRepairOrder>().lambda() |
| | | .eq(GuideRepairOrder::getId, order.getGuideId())); |
| | | if (guideRepairOrder!=null){ |
| | | this.sendGuideRepairOrderSubmit(sysUserTo.getOpenid(),guideRepairOrder); |
| | | } |
| | | 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; |
| | | } |
| | | |
| | |
| | | */ |
| | | @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); |
| | | String isTimeout, String evaluateState, |
| | | List<String> classifyIds,String serviceState, |
| | | String guideUserId) { |
| | | return baseMapper.countStatisticsNum(state, ids, time, isTimeout, evaluateState, classifyIds,serviceState,guideUserId); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public GuideRepairOrder setTimeoutTim(GuideRepairOrder guideRepairOrder){ |
| | | public GuideRepairOrder setTimeoutTim(GuideRepairOrder guideRepairOrder) { |
| | | AutomessageSysSettings automessageSysSettings = iSysSettingsMapper.selectOne( |
| | | new QueryWrapper<AutomessageSysSettings>().lambda() |
| | | .eq(AutomessageSysSettings::getSettingName,"系统超时基础设置")); |
| | | .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 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)){//提交时间是上午上班前 |
| | | DateTime dateTimeUser = DateTime.now(); |
| | | String format = "YYYYMMdd"; |
| | | String dateTimeToday = dateTimeUser.toString(format); |
| | | if (!WorkUtils.isWorkendDay(dateTimeToday)) { |
| | | 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)){//提交时间在上午工作日内 |
| | | 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)){//提交时间在工作日午休内 |
| | | } 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)){//提交时间在下午工作日内 |
| | | 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)){//提交时间在下午下班后 |
| | | } 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点+设置超时时间 |
| | | 9 + automessageSysSettings.getTimeoutNotificationNum(), 0);//设置时间为下一个工作日时间的9点+设置超时时间 |
| | | guideRepairOrder.setTimeoutTime(localDateTime); |
| | | } |
| | | }else//当前不是工作日则获取下一个工作日 |
| | | } 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点+设置超时时间 |
| | | 9 + automessageSysSettings.getTimeoutNotificationNum(), 0);//设置时间为下一个工作日时间的9点+设置超时时间 |
| | | guideRepairOrder.setTimeoutTime(localDateTime); |
| | | } |
| | | return guideRepairOrder; |
| | | } |
| | | |
| | | @Override |
| | | public void sendGuideRepairOrderSubmit (String openid,GuideRepairOrder guideRepairOrder){ |
| | | WxUtil wxUtil=new WxUtil(); |
| | | String accessToken="0"; |
| | | public void sendGuideRepairOrderSubmit(String openid, GuideRepairOrder guideRepairOrder) { |
| | | WxUtil wxUtil = new WxUtil(); |
| | | String accessToken = "0"; |
| | | try { |
| | | accessToken= wxUtil.getBatteryCarAccessToken(); |
| | | accessToken = wxUtil.getBatteryCarAccessToken(); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | wxUtil.sendGuideRepairOrderSubmit(openid,accessToken,"WggWK_yG7_qfrTj8bQe-2co4ATgpXamLzT1xvrTu4K0",guideRepairOrder); |
| | | wxUtil.sendGuideRepairOrderSubmit(openid, accessToken, "WggWK_yG7_qfrTj8bQe-2co4ATgpXamLzT1xvrTu4K0", guideRepairOrder); |
| | | // smsUtil.sendSmsOvertime(sysUser.getPhonenumber(),guideRepairOrder.getMatterName()); |
| | | } |
| | | |
| | |
| | | return baseMapper.deleteConfigById(Id); |
| | | } |
| | | |
| | | @Override |
| | | public ResultData pushOvertimeGuideRepairOrder() { |
| | | List<GuideRepairOrder> guideRepairOrders = baseMapper.selectOvertime(); |
| | | WxUtil wxUtil = new WxUtil(); |
| | | String accessToken = "0"; |
| | | try { |
| | | accessToken = wxUtil.getBatteryCarAccessToken(); |
| | | } 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; |
| | | } |
| | | |
| | | |
| | | } |