| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -11,6 +11,9 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; | 
					 | 
					 | 
					 | 
					import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; | 
					 | 
					 | 
					 | 
					import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzims.common.logs.utils.StringUtils; | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.common.logs.utils.StringUtils; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.message.MessageConstants; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.message.dto.MessagePushRecordDto; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.message.fegin.IMessageClient; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzims.operational.access.entity.OperAccessTaskEntity; | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.operational.access.entity.OperAccessTaskEntity; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzims.operational.access.feign.IOperAccessTaskClient; | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.operational.access.feign.IOperAccessTaskClient; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzims.operational.feign.IAccessTaskClient; | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.operational.feign.IAccessTaskClient; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -54,6 +57,7 @@ import org.springblade.core.tool.utils.Func; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import org.springblade.core.tool.utils.ObjectUtil; | 
					 | 
					 | 
					 | 
					import org.springblade.core.tool.utils.ObjectUtil; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import org.springblade.flow.core.entity.BladeFlow; | 
					 | 
					 | 
					 | 
					import org.springblade.flow.core.entity.BladeFlow; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import org.springblade.flow.core.feign.IFlowClient; | 
					 | 
					 | 
					 | 
					import org.springblade.flow.core.feign.IFlowClient; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					import org.springblade.system.feign.ISysClient; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import org.springblade.system.user.cache.UserCache; | 
					 | 
					 | 
					 | 
					import org.springblade.system.user.cache.UserCache; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import org.springblade.system.user.entity.User; | 
					 | 
					 | 
					 | 
					import org.springblade.system.user.entity.User; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import org.springblade.system.user.feign.IUserClient; | 
					 | 
					 | 
					 | 
					import org.springblade.system.user.feign.IUserClient; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -147,6 +151,13 @@ public class TicketProcessServiceImpl implements TicketProcessService { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private final ProcessDictService processDictService; | 
					 | 
					 | 
					 | 
					    private final ProcessDictService processDictService; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    private final IMessageClient messageClient; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    private final ISysClient sysClient; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    /** | 
					 | 
					 | 
					 | 
					    /** | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     * 启动开票流程 | 
					 | 
					 | 
					 | 
					     * 启动开票流程 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					     * | 
					 | 
					 | 
					 | 
					     * | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -306,15 +317,16 @@ public class TicketProcessServiceImpl implements TicketProcessService { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        //工作结束
 | 
					 | 
					 | 
					 | 
					        //工作结束
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        WorkTicketFinish workTicketFinish = workTicketVo.getWorkTicketFinish(); | 
					 | 
					 | 
					 | 
					        WorkTicketFinish workTicketFinish = workTicketVo.getWorkTicketFinish(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        try { | 
					 | 
					 | 
					 | 
					        try { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            log.info("工作结束==============>"+ (workTicket.getFlowStatus().intValue())); | 
					 | 
					 | 
					 | 
					            log.info("工作结束==============>"+ (workTicket.getFlowStatus().intValue())); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            if (ObjectUtils.isNotEmpty(workTicketFinish)) { | 
					 | 
					 | 
					 | 
					            if (ObjectUtils.isNotEmpty(workTicketFinish)) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                WorkTicketFinish ticketFinish = workTicketFinishService.selectByTicketId(workTicketInfo.getId()); | 
					 | 
					 | 
					 | 
					                WorkTicketFinish ticketFinish = workTicketFinishService.selectByTicketId(workTicketInfo.getId()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                log.info("获取工作结束:{}", workTicketFinish); | 
					 | 
					 | 
					 | 
					                log.info("获取工作结束:{}", workTicketFinish); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                if (ObjectUtils.isEmpty(workTicketFinish.getId()) || ObjectUtils.isEmpty(ticketFinish)) { | 
					 | 
					 | 
					 | 
					                if (ObjectUtils.isEmpty(workTicketFinish.getId()) || ObjectUtils.isEmpty(ticketFinish)) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    log.info("获取工作结束保存成功"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    workTicketFinish.setTicketId(workTicketInfo.getId()); | 
					 | 
					 | 
					 | 
					                    workTicketFinish.setTicketId(workTicketInfo.getId()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    workTicketFinishService.save(workTicketFinish); | 
					 | 
					 | 
					 | 
					                    workTicketFinishService.save(workTicketFinish); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                } else { | 
					 | 
					 | 
					 | 
					                } else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    log.info("获取工作结束更新成功"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    workTicketDelay.setInitialTime(LocalDateTime.now()); | 
					 | 
					 | 
					 | 
					                    workTicketDelay.setInitialTime(LocalDateTime.now()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    workTicketFinishService.updateByTicketId(workTicketFinish); | 
					 | 
					 | 
					 | 
					                    workTicketFinishService.updateByTicketId(workTicketFinish); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                } | 
					 | 
					 | 
					 | 
					                } | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -384,6 +396,47 @@ public class TicketProcessServiceImpl implements TicketProcessService { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } catch (Exception e) { | 
					 | 
					 | 
					 | 
					        } catch (Exception e) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            e.printStackTrace(); | 
					 | 
					 | 
					 | 
					            e.printStackTrace(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        //推送消息
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        MessagePushRecordDto message = new MessagePushRecordDto(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        message.setBusinessClassify("business"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        message.setBusinessKey(MessageConstants.BusinessClassifyEnum.TICKETMESSAGE.getKey()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        message.setSubject(MessageConstants.BusinessClassifyEnum.TICKETMESSAGE.getDescription()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        message.setTaskId(workTicketInfo.getId()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        message.setTenantId("200000"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        message.setTypes(Arrays.asList(MessageConstants.APP_PUSH, MessageConstants.WS_PUSH)); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        message.setPushType(MessageConstants.IMMEDIATELY); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        //您有一张工作票待审批,工作内容:*****,审批环节:*****;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        String countent = | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                "您有一张工作票待审批,工作内容:".concat(workTicketInfo.getWorkContent()) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        .concat(",审批环节:") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        .concat(response.getTaskName()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        message.setContent(countent); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        message.setDeptId(workTicketInfo.getCreateDept()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        R<String> deptName = sysClient.getDeptName(workTicketInfo.getCreateDept()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        if (deptName.isSuccess()) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            message.setDeptName(deptName.getData()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        String userIds = response.getUserId(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        if (StringUtils.isBlank(userIds)){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            log.error("推送的消息不能为空哦,{}",userIds); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            return; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        String[] split = userIds.split(","); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        for (String userId : split) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            message.setPusher(userId); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            User user = UserCache.getUser(NumberUtils.toLong(userId)); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            if (ObjectUtils.isNotEmpty(user)) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                message.setPusherName(user.getName()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            message.setAccount(userId); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            message.setCreateUser(NumberUtils.toLong(userId)); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            messageClient.sendMessage(message); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -432,7 +485,7 @@ public class TicketProcessServiceImpl implements TicketProcessService { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        String taskId = response.getTaskId(); | 
					 | 
					 | 
					 | 
					        String taskId = response.getTaskId(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if (StringUtils.isEmpty(taskId)) { | 
					 | 
					 | 
					 | 
					        if (StringUtils.isEmpty(taskId)) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            workTicket.setFlowDescription("结束"); | 
					 | 
					 | 
					 | 
					            workTicket.setFlowDescription("结束"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            workTicket.setFlowTaskId(" "); | 
					 | 
					 | 
					 | 
					            // workTicket.setFlowTaskId(" ");
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            workTicket.setFlowTaskName("结束"); | 
					 | 
					 | 
					 | 
					            workTicket.setFlowTaskName("结束"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            workTicket.setNextStepOperator(" "); | 
					 | 
					 | 
					 | 
					            workTicket.setNextStepOperator(" "); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            workTicket.setStepOperator(" "); | 
					 | 
					 | 
					 | 
					            workTicket.setStepOperator(" "); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1165,8 +1218,6 @@ public class TicketProcessServiceImpl implements TicketProcessService { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            dataConversion.put(key, BooleanUtils.toBoolean(newValue) ? "☑" : "□"); | 
					 | 
					 | 
					 | 
					            dataConversion.put(key, BooleanUtils.toBoolean(newValue) ? "☑" : "□"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |