| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 |
- package com.xcgl.weeklyMeeting.service.impl;
- import cn.com.lzt.message.send.entity.MMessageEntity;
- import cn.com.lzt.message.send.entity.MessageWxTemplateConfig;
- import cn.com.lzt.message.send.service.MMessageSendServiceI;
- import cn.com.lzt.tools.ServerType;
- import cn.com.lzt.useractiviti.data.dao.UseractivitiDataDao;
- import com.xcgl.projecttask.entity.ProjecttaskEntity;
- import com.xcgl.projecttask.service.ProjecttaskServiceI;
- import com.xcgl.taskresult.entity.TaskResultEntity;
- import com.xcgl.utils.OrderNumTools;
- import com.xcgl.utils.XcglConstant;
- import com.xcgl.weeklyMeeting.dao.WeeklyMeetingMiniDao;
- import com.xcgl.weeklyMeeting.entity.WeeklyMeetingEntity;
- import com.xcgl.weeklyMeeting.results.BaseResult;
- import com.xcgl.weeklyMeeting.results.ResultClass;
- import com.xcgl.weeklyMeeting.service.WeeklyMeetingService;
- import org.apache.commons.lang.StringUtils;
- import org.apache.log4j.Logger;
- import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
- import org.jeecgframework.core.constant.Globals;
- import org.jeecgframework.core.util.ResourceUtil;
- import org.jeecgframework.web.system.pojo.base.TSDepart;
- import org.jeecgframework.web.system.pojo.base.TSUser;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import javax.servlet.http.HttpServletRequest;
- import java.text.SimpleDateFormat;
- import java.util.*;
- @Service("WeeklyMeetingService")
- public class WeeklyMeetingServiceImpl extends CommonServiceImpl implements WeeklyMeetingService {
-
- @Autowired
- WeeklyMeetingMiniDao weeklyMeetingMiniDao;
- @Autowired
- ProjecttaskServiceI projecttaskService;
- @Autowired
- UseractivitiDataDao useractivitiDataDao;
- @Autowired
- private MMessageSendServiceI mMessageSendService;
- private static final Logger logger = Logger.getLogger(WeeklyMeetingServiceImpl.class);
- @Override
- public BaseResult addAndModify(WeeklyMeetingEntity weeklyMeetingEntity) {
- if("".equals(weeklyMeetingEntity.getId()) || weeklyMeetingEntity.getId() == null){
- StringBuffer sql = new StringBuffer();
- sql.append(" INSERT INTO p_weekly_meeting ( ");
- sql.append(" id, create_date, meeting_time, meeting_content,\n" +
- " urgent, importance, propose_id, propose_name, implementation_id,\n" +
- " implementation_name, expected_completion ) ");
- sql.append(" VALUES ( ");
- sql.append(" uuid(), NOW(), :meetingTime, :meetingContent, " +
- ":urgent, :importance, :proposeId, :proposeName, " +
- ":implementationId, :implementationName, :expectedCompletion ) ");
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("meetingTime", weeklyMeetingEntity.getMeetingTime());
- param.put("meetingContent", weeklyMeetingEntity.getMeetingContent());
- param.put("urgent", weeklyMeetingEntity.getUrgent());
- param.put("importance", weeklyMeetingEntity.getImportance());
- param.put("proposeId", weeklyMeetingEntity.getProposeId());
- param.put("proposeName", weeklyMeetingEntity.getProposeName());
- param.put("implementationId", weeklyMeetingEntity.getImplementationId());
- param.put("implementationName", weeklyMeetingEntity.getImplementationName());
- param.put("expectedCompletion", weeklyMeetingEntity.getExpectedCompletion());
- executeSql(sql.toString(), param);
- }else{
- StringBuffer sql = new StringBuffer();
- sql.append(" UPDATE p_weekly_meeting SET ");
- sql.append(" meeting_time = :meetingTime, ");
- sql.append(" meeting_content = :meetingContent, ");
- sql.append(" urgent = :urgent, ");
- sql.append(" importance = :importance, ");
- sql.append(" propose_id = :proposeId, ");
- sql.append(" propose_name = :proposeName, ");
- sql.append(" implementation_id = :implementationId, ");
- sql.append(" implementation_name = :implementationName, ");
- sql.append(" expected_completion = :expectedCompletion ");
- sql.append(" WHERE id = :id ");
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("meetingTime", weeklyMeetingEntity.getMeetingTime());
- param.put("meetingContent", weeklyMeetingEntity.getMeetingContent());
- param.put("urgent", weeklyMeetingEntity.getUrgent());
- param.put("importance", weeklyMeetingEntity.getImportance());
- param.put("proposeId", weeklyMeetingEntity.getProposeId());
- param.put("proposeName", weeklyMeetingEntity.getProposeName());
- param.put("implementationId", weeklyMeetingEntity.getImplementationId());
- param.put("implementationName", weeklyMeetingEntity.getImplementationName());
- param.put("expectedCompletion", weeklyMeetingEntity.getExpectedCompletion());
- param.put("id", weeklyMeetingEntity.getId());
- executeSql(sql.toString(), param);
- }
- return ResultClass.OK;
- }
- @Override
- public BaseResult queryList(HttpServletRequest request) {
- String urgent = request.getParameter("urgent");
- String importance = request.getParameter("importance");
- String executionStatus = request.getParameter("executionStatus");
- String startTime = request.getParameter("startTime");
- String endTime = request.getParameter("endTime");
- List<WeeklyMeetingEntity> lists = weeklyMeetingMiniDao.queryList(urgent, importance, executionStatus, startTime, endTime);
- return ResultClass.data(lists);
- }
- @Override
- public BaseResult deleteRecord(HttpServletRequest request) {
- String id = request.getParameter("id");
- WeeklyMeetingEntity weeklyMeetingEntity = get(WeeklyMeetingEntity.class, id);
- if("1".equals(weeklyMeetingEntity.getIssue())){
- return ResultClass.fail("已下发");
- }
- delete(weeklyMeetingEntity);
- return ResultClass.OK;
- }
- @Override
- public BaseResult issueTask(HttpServletRequest request) {
- String weekNum = request.getParameter("weekNum");
- String hql = "from WeeklyMeetingEntity where weekNum =? and issue='0' and execution_status <> '50'";
- List<WeeklyMeetingEntity> list = findHql(hql,weekNum);
- for(WeeklyMeetingEntity meetingEntity : list){
- ProjecttaskEntity newTask = new ProjecttaskEntity();
- if(StringUtils.isNotEmpty(meetingEntity.getProjectTaskId())){
- newTask = get(ProjecttaskEntity.class, meetingEntity.getProjectTaskId());
- }
- String userId = meetingEntity.getImplementationId();
- boolean msg = true;
- if(userId.equals(newTask.getOwner())){
- msg = false;
- }
- TSDepart depart = useractivitiDataDao.getUserDep(userId);
- newTask.setProjectid(depart.getId());
- newTask.setOwner(userId);
- newTask.setDescription(meetingEntity.getMeetingContent());
- newTask.setName(meetingEntity.getMeetingContent());
- newTask.setMsgtime(new Date());
- newTask.setPlanstarttime(new Date());
- Date planendTime = meetingEntity.getExpectedCompletion();
- Calendar now = Calendar.getInstance();
- now.setTime(planendTime);
- now.set(Calendar.HOUR_OF_DAY, 17);
- newTask.setPlanendtime(now.getTime());
- newTask.setSourcetype("weeklymeeting");
- newTask.setSourceid(meetingEntity.getId());
- newTask.setTasktype("weeklymeeting");
- newTask.setTaskstatus("0");
- newTask.setExecuteWay(ProjecttaskEntity.ExecuteWay.both);
- newTask.setCheckResult(ProjecttaskEntity.CheckResult.not_check);
- newTask.setExecuteType(ProjecttaskEntity.ExecuteType.offline);
- String lastCode = OrderNumTools.generateNextBillCode(projecttaskService.getMaxLocalCode(), Globals.CODE_PREFIX_PROJECTTASK,4);
- newTask.setCode( lastCode);
- try{
- projecttaskService.save(newTask);
- meetingEntity.setProjectTaskId(newTask.getId());
- meetingEntity.setIssue("1");
- save(meetingEntity);
- //发消息
- if(msg){
- projecttaskService.sendMsg(newTask);
- }else{
- sendMsg(newTask, "gengxin");
- }
- }catch (Exception e){
- return ResultClass.fail("任务异常");
- }
- }
- return ResultClass.OK;
- }
- @Override
- public BaseResult reexecution(HttpServletRequest request) {
- String taskId = request.getParameter("taskId");
- //修改会议状态
- WeeklyMeetingEntity weeklyMeetingEntity = weeklyMeetingMiniDao.projectTaskId(taskId);
- weeklyMeetingEntity.setExecutionStatus("1");
- weeklyMeetingEntity.setActualCompletion(null);
- weeklyMeetingEntity.setRemindNum("0");
- updateEntitie(weeklyMeetingEntity);
- //修改任务状态
- ProjecttaskEntity projecttaskEntity = get(ProjecttaskEntity.class, taskId);
- projecttaskEntity.setTaskstatus("1");
- projecttaskService.updateEntitie(projecttaskEntity);
- projecttaskService.sendMsg(projecttaskEntity);
- return ResultClass.OK;
- }
- @Override
- public BaseResult revokeTask(HttpServletRequest request) {
- String taskId = request.getParameter("taskId");
- //修改会议状态
- WeeklyMeetingEntity weeklyMeetingEntity = weeklyMeetingMiniDao.projectTaskId(taskId);
- weeklyMeetingEntity.setExecutionStatus("50");
- updateEntitie(weeklyMeetingEntity);
- //删除任务
- ProjecttaskEntity projecttaskEntity = get(ProjecttaskEntity.class, taskId);
- try{
- delete(projecttaskEntity);
- List<TaskResultEntity> taskresultList = findByProperty(TaskResultEntity.class, "taskid", projecttaskEntity.getId());
- for (TaskResultEntity taskresult : taskresultList) {
- delete(taskresult);
- }
- sendMsg(projecttaskEntity, "chexiao");//发送消息
- } catch (Exception e) {
- e.printStackTrace();
- ResultClass.fail("删除任务失败");
- }
- return ResultClass.OK;
- }
- public void sendMsg(ProjecttaskEntity task, String notificationType) {
- String owner = task.getOwner();
- TSUser ownerUser = getEntity(TSUser.class, owner);
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- ProjecttaskEntity.ExecuteWay executeWay = task.getExecuteWay();
- Map<String, Object> userMsgParms = new HashMap<String, Object>();
- String first = null;
- if(org.apache.commons.lang3.StringUtils.isNotBlank(task.getWxMsgTitle())){
- first = task.getWxMsgTitle();
- }else {
- if("chexiao".equals(notificationType)){
- first = "你好" + ownerUser.getRealName() + ",你的任务已撤销";
- }else if("gengxin".equals(notificationType)){
- first = "你好" + ownerUser.getRealName() + ",你的任务内容有更新";
- }else{
- first = "你好" + ownerUser.getRealName() + ",你有一个新工作";
- }
- }
- String k1 = null;
- if(org.apache.commons.lang3.StringUtils.isNotBlank(task.getWxTaskName())){
- k1 = task.getWxTaskName();
- }else {
- k1 = task.getName();
- }
- userMsgParms.put("first", first);
- userMsgParms.put("keyword1", k1);//工作内容
- userMsgParms.put("keyword2", format.format(new Date()));//创建时间
- String url = null;
- String remark=task.getWxRemark();
- if("chexiao".equals(notificationType)){
- remark = "任务已撤销";
- }else{
- if(org.apache.commons.lang3.StringUtils.isBlank(remark)) {
- remark = "任务时间:截止到 " + format.format(task.getPlanendtime());
- }
- remark +="\r\n ";
- if (executeWay == ProjecttaskEntity.ExecuteWay.both) {
- url = "http://www.shenqin.work";
- if(ServerType.getServerType()==ServerType.test){
- String serverPath = ResourceUtil.getConfigByName(Globals.SERVER_WXMSG);
- url=serverPath;
- }
- url += "/h5/task.html?id=" + task.getId();
- remark += "点击【详情】查看工作内容";
- } else {
- remark += "请登录慧管理系统完成工作";
- }
- }
- userMsgParms.put("remark", remark);
- MessageWxTemplateConfig config = new MessageWxTemplateConfig();
- config.setTemplateId(XcglConstant.TEMPLATE_WXMSG_TASK);
- config.setUserMsgParms(userMsgParms);
- config.setShowUrl(url!=null);
- mMessageSendService.sendMessage(Collections.singletonList(owner),url,null,null,config,new MMessageEntity.MessageSendWay[]{MMessageEntity.MessageSendWay.wx});
- }
- }
|