WeeklyMeetingController.java 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. package com.xcgl.weeklyMeeting.controller;
  2. import cn.com.lzt.common.util.DepartUtil;
  3. import cn.com.lzt.useractiviti.data.dao.UseractivitiDataDao;
  4. import com.xcgl.projecttask.entity.ProjecttaskEntity;
  5. import com.xcgl.utils.XcglConstant;
  6. import com.xcgl.weeklyMeeting.entity.WeeklyMeetingEntity;
  7. import com.xcgl.weeklyMeeting.entity.WeeklyMeetingPage;
  8. import com.xcgl.weeklyMeeting.results.BaseResult;
  9. import com.xcgl.weeklyMeeting.service.WeeklyMeetingService;
  10. import org.apache.commons.lang.StringUtils;
  11. import org.apache.log4j.Logger;
  12. import org.jeecgframework.core.common.controller.BaseController;
  13. import org.jeecgframework.core.common.exception.BusinessException;
  14. import org.jeecgframework.core.common.model.json.AjaxJson;
  15. import org.jeecgframework.core.util.MyBeanUtils;
  16. import org.jeecgframework.core.util.ResourceUtil;
  17. import org.jeecgframework.web.system.pojo.base.TSDepart;
  18. import org.jeecgframework.web.system.pojo.base.TSUser;
  19. import org.jeecgframework.web.system.service.SystemService;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Controller;
  22. import org.springframework.web.bind.annotation.RequestMapping;
  23. import org.springframework.web.bind.annotation.ResponseBody;
  24. import org.springframework.web.servlet.ModelAndView;
  25. import javax.servlet.http.HttpServletRequest;
  26. import java.util.ArrayList;
  27. import java.util.Calendar;
  28. import java.util.Date;
  29. import java.util.List;
  30. @Controller
  31. @RequestMapping(value = "/weeklyMeetingController")
  32. public class WeeklyMeetingController extends BaseController {
  33. private static final Logger logger = Logger.getLogger(WeeklyMeetingController.class);
  34. @Autowired
  35. WeeklyMeetingService weeklyMeetingService;
  36. @Autowired
  37. private SystemService systemService;
  38. @Autowired
  39. UseractivitiDataDao useractivitiDataDao;
  40. @RequestMapping(params = "goAdd")
  41. public ModelAndView goAdd(HttpServletRequest request) {
  42. Calendar now = Calendar.getInstance();
  43. Integer weekOfYear= now.get(Calendar.WEEK_OF_YEAR);
  44. Integer year = now.get(Calendar.YEAR);
  45. String weekNum =String.valueOf(year)+weekOfYear;
  46. request.setAttribute("weekNum",weekNum);
  47. String diffWeekString = request.getParameter("diffWeek");
  48. Integer diffWeek = diffWeekString==null?0:Integer.valueOf(diffWeekString);
  49. String watchType = request.getParameter("watchType");
  50. if(StringUtils.equals(watchType,"before")){
  51. diffWeek--;
  52. }else if(StringUtils.equals(watchType,"next")){
  53. diffWeek++;
  54. }
  55. now.add(Calendar.DAY_OF_YEAR,diffWeek*7 );
  56. request.setAttribute("diffWeek",diffWeek);
  57. String searchWeekNum = String.valueOf(now.get(Calendar.YEAR))+now.get(Calendar.WEEK_OF_YEAR);
  58. String hql = "from WeeklyMeetingEntity where weekNum =? ";
  59. String urgent = request.getParameter("urgent");
  60. String importance = request.getParameter("importance");
  61. String executionStatus = request.getParameter("executionStatus");
  62. List<String> args = new ArrayList();
  63. args.add(searchWeekNum);
  64. if(StringUtils.isNotBlank(urgent)){
  65. hql += " and urgent=? ";
  66. args.add(urgent);
  67. }
  68. if(StringUtils.isNotBlank(importance)){
  69. hql += " and importance=? ";
  70. args.add(importance);
  71. }
  72. if(StringUtils.isNotBlank(executionStatus)){
  73. if("1".equals(executionStatus)){
  74. hql += " and executionStatus in (?, ?)";
  75. args.add("0");
  76. args.add(executionStatus);
  77. }else{
  78. hql += " and executionStatus=? ";
  79. args.add(executionStatus);
  80. }
  81. }
  82. TSUser sessionUser = ResourceUtil.getSessionUser();
  83. boolean generalManagerOffice = DepartUtil.userWhetherBelongToGeneralManagerOffice(sessionUser);
  84. if(!generalManagerOffice){
  85. hql += " and proposeId=? ";
  86. args.add(sessionUser.getId());
  87. }
  88. List<WeeklyMeetingEntity> list = systemService.findHql(hql,args.toArray());
  89. for(WeeklyMeetingEntity entity:list){
  90. String status = entity.getExecutionStatus();
  91. String taskId = entity.getProjectTaskId();
  92. if(StringUtils.isNotBlank(taskId)) {
  93. ProjecttaskEntity projecttaskEntity = systemService.get(ProjecttaskEntity.class, taskId);
  94. if(projecttaskEntity != null){
  95. if (!StringUtils.equals(status, XcglConstant.TASKSTATUS_DONE)) {
  96. String taskStatus = projecttaskEntity.getTaskstatus();
  97. if (StringUtils.equals(taskStatus, XcglConstant.TASKSTATUS_DONE)) {
  98. Date endTime = projecttaskEntity.getExeendtime();
  99. Date endDate = projecttaskEntity.getPlanendtime();
  100. entity.setActualCompletion(endTime);
  101. if(endTime.getTime() > endDate.getTime()){
  102. entity.setExecutionStatus("40");
  103. }else{
  104. entity.setExecutionStatus(taskStatus);
  105. }
  106. }else{
  107. Date nowDate = new Date();
  108. Date endDate = projecttaskEntity.getPlanendtime();
  109. if (nowDate.getTime() > endDate.getTime()) {
  110. entity.setExecutionStatus("30");
  111. }else{
  112. entity.setExecutionStatus(taskStatus);
  113. }
  114. }
  115. systemService.saveOrUpdate(entity);
  116. }
  117. entity.setShowProjectTask(new Integer(0).equals(projecttaskEntity.getTemp()));
  118. }
  119. }
  120. }
  121. request.setAttribute("list",list);
  122. request.setAttribute("userName",sessionUser.getUserName());
  123. request.setAttribute("generalManagerOffice",generalManagerOffice);
  124. return new ModelAndView("com/xcgl/weeklyMeeting/weeklyMeeting-add");
  125. }
  126. @ResponseBody
  127. @RequestMapping(params = "addAndModify")
  128. public AjaxJson addAndModify(WeeklyMeetingPage meetingPage, HttpServletRequest request) {
  129. AjaxJson j = new AjaxJson();
  130. String message=null;
  131. try{
  132. List<WeeklyMeetingEntity> list = meetingPage.getWeeklyMeetingEntitiyList();
  133. for(WeeklyMeetingEntity entity:list){
  134. String id = entity.getId();
  135. if(StringUtils.isNotBlank(id)) {
  136. WeeklyMeetingEntity old = systemService.get(WeeklyMeetingEntity.class, id);
  137. WeeklyMeetingEntity oldest = new WeeklyMeetingEntity();
  138. MyBeanUtils.copyBeanNotNull2Bean(old, oldest);
  139. MyBeanUtils.copyBeanNotNull2Bean(entity, old);
  140. if(compare(old, oldest)){
  141. old.setIssue("0");
  142. old.setExecutionStatus("0");
  143. old.setRemindNum("0");
  144. if(StringUtils.isNotEmpty(old.getProjectTaskId())){
  145. TSDepart depart = useractivitiDataDao.getUserDep(old.getImplementationId());
  146. ProjecttaskEntity projecttaskEntity = systemService.get(ProjecttaskEntity.class, old.getProjectTaskId());
  147. projecttaskEntity.setProjectid(depart.getProjectid());
  148. projecttaskEntity.setOwner(old.getImplementationId());
  149. projecttaskEntity.setDescription(old.getMeetingContent());
  150. projecttaskEntity.setName(old.getMeetingContent());
  151. Date planendTime = old.getExpectedCompletion();
  152. Calendar now = Calendar.getInstance();
  153. now.setTime(planendTime);
  154. now.set(Calendar.HOUR_OF_DAY, 17);
  155. projecttaskEntity.setPlanendtime(now.getTime());
  156. projecttaskEntity.setTaskstatus("0");
  157. projecttaskEntity.setCompletePer("0");
  158. systemService.saveOrUpdate(projecttaskEntity);
  159. }
  160. }
  161. systemService.saveOrUpdate(old);
  162. }else {
  163. systemService.saveOrUpdate(entity);
  164. }
  165. }
  166. }catch(Exception e){
  167. e.printStackTrace();
  168. throw new BusinessException(e.getMessage());
  169. }
  170. j.setMsg(message);
  171. return j;
  172. }
  173. public boolean compare(WeeklyMeetingEntity old, WeeklyMeetingEntity oldest){
  174. if(!(oldest.getMeetingTime().getTime() == old.getMeetingTime().getTime())){
  175. return true;
  176. }else if(!oldest.getMeetingContent().equals(old.getMeetingContent())){
  177. return true;
  178. }else if(!oldest.getUrgent().equals(old.getUrgent())){
  179. return true;
  180. }else if(!oldest.getImportance().equals(old.getImportance())){
  181. return true;
  182. }else if(!oldest.getProposeId().equals(old.getProposeId())){
  183. return true;
  184. }else if(!oldest.getProposeName().equals(old.getProposeName())){
  185. return true;
  186. }else if(!oldest.getImplementationId().equals(old.getImplementationId())){
  187. return true;
  188. }else if(!oldest.getImplementationName().equals(old.getImplementationName())){
  189. return true;
  190. }else if(!(oldest.getExpectedCompletion().getTime() == old.getExpectedCompletion().getTime())){
  191. return true;
  192. }
  193. return false;
  194. }
  195. @ResponseBody
  196. @RequestMapping(params = "queryList")
  197. public BaseResult queryList(HttpServletRequest request) {
  198. return weeklyMeetingService.queryList(request);
  199. }
  200. @ResponseBody
  201. @RequestMapping(params = "deleteRecord")
  202. public BaseResult deleteRecord(HttpServletRequest request) {
  203. return weeklyMeetingService.deleteRecord(request);
  204. }
  205. @ResponseBody
  206. @RequestMapping(params = "issueTask")
  207. public BaseResult issueTask(HttpServletRequest request) {
  208. return weeklyMeetingService.issueTask(request);
  209. }
  210. @ResponseBody
  211. @RequestMapping(params = "reexecution")
  212. public BaseResult reexecution(HttpServletRequest request) {
  213. return weeklyMeetingService.reexecution(request);
  214. }
  215. @ResponseBody
  216. @RequestMapping(params = "revokeTask")
  217. public BaseResult revokeTask(HttpServletRequest request) {
  218. return weeklyMeetingService.revokeTask(request);
  219. }
  220. }