package com.xcgl.activititask.service.impl; import cn.com.lzt.message.send.util.MessageSendUtil; import com.xcgl.activititask.entity.PActivitiTaskEntity; import com.xcgl.activititask.service.ActivitiTaskService; import com.xcgl.activititask.util.ActivitiTaskHandler; import com.xcgl.activititask.util.ActivitiTaskHandlerUtil; import com.xcgl.projecttask.entity.ProjecttaskEntity; import com.xcgl.utils.XcglConstant; import org.apache.commons.lang.xwork.StringUtils; import org.jeecgframework.core.constant.Globals; import org.jeecgframework.core.util.DateUtils; import org.jeecgframework.web.system.pojo.base.TSUser; import org.jeecgframework.web.system.service.SystemService; import org.jeecgframework.workflow.pojo.base.TPProcess; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.util.*; @Service public class ActivitiTaskServiceImpl implements ActivitiTaskService { @Autowired private SystemService systemService; @Override public void start(String processKey, String table, String formId) { TPProcess process = systemService.findUniqueByProperty(TPProcess.class, "processkey", processKey); if(process!=null){ String processId = process.getId(); List activitiTaskList =systemService.findByProperty(PActivitiTaskEntity.class, "processId",processId ); for(PActivitiTaskEntity activitiTaskEntity : activitiTaskList){ String clazzStringValue = activitiTaskEntity.getExecuteClass(); List taskList = null; ActivitiTaskHandler handler = ActivitiTaskHandlerUtil.getHandler(clazzStringValue); if(handler.canDo(activitiTaskEntity,table,formId)){ taskList = handler.createTask(activitiTaskEntity,table,formId); if(taskList==null || taskList.isEmpty()) return; systemService.batchSave(taskList); for(ProjecttaskEntity task : taskList) { try { //发消息 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String owner = task.getOwner(); TSUser ownerUser = systemService.getEntity(TSUser.class, owner); String targetUserId = task.getTargetUser(); ProjecttaskEntity.ExecuteWay executeWay = task.getExecuteWay(); Map userMsgParms = new HashMap(); userMsgParms.put("first", "你好" + ownerUser.getRealName() + ",你有一个新工作"); userMsgParms.put("keyword1", task.getName());//工作内容 userMsgParms.put("keyword2", format.format(new Date()));//创建时间 String openId = ownerUser.getOpenid(); String url = null; String remark = "任务时间:截止到 " + format.format(task.getPlanendtime()) + "\r\n "; if (executeWay == ProjecttaskEntity.ExecuteWay.both) { url = "http://www.shenqin.work/h5/task.html?id=" + task.getId(); remark += "点击【详情】查看工作内容"; } else { remark += "请登录慧管理系统完成工作"; } userMsgParms.put("remark", remark); MessageSendUtil.sendMsgToWX(XcglConstant.TEMPLATE_WXMSG_TASK, owner, openId, url, userMsgParms, true); } catch (Exception e) { e.printStackTrace(); } } } } } } }