package com.bcxin.survey.controller.wechat; import com.bcxin.survey.base.BaseController; import com.bcxin.survey.dao.report.TaskDao; import com.bcxin.survey.domain.activity.Activity; import com.bcxin.survey.domain.report.Task; import com.bcxin.survey.domain.security.User; import com.bcxin.survey.domain.survey.SurveyAssist; import com.bcxin.survey.domain.survey.SurveyPlan; import com.bcxin.survey.domain.survey.SurveyTask; import com.bcxin.survey.domain.survey.Survey_FeedBack; import com.bcxin.survey.enums.report.*; import com.bcxin.survey.service.CommonService; import com.bcxin.survey.service.UserService; import com.bcxin.survey.service.report.ActivityService; import com.bcxin.survey.service.wechat.SurveyAssistService; import com.bcxin.survey.service.wechat.SurveyFeedBackService; import com.bcxin.survey.service.wechat.SurveyPlanService; import com.bcxin.survey.service.wechat.SurveyTaskService; import com.bcxin.survey.utils.CollectionUtil; import com.bcxin.survey.utils.DictConst; import com.bcxin.survey.utils.StringUtil; import com.bcxin.survey.vo.DwzPage; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; import java.util.Map; @Controller @RequestMapping("/wechat/task") public class WechatTaskController extends BaseController { @Autowired private UserService userService; @Autowired private TaskDao taskDao; @Autowired private SurveyTaskService surveyTaskService; @Autowired private SurveyFeedBackService surveyFeedBackService; @Autowired private SurveyAssistService surveyAssistService; @Autowired private SurveyPlanService surveyPlanService; @Autowired private ActivityService activityService; @Autowired private CommonService commonService; private List<SurveyTask> selectExpert(List<SurveyTask> taskList) { //鏌ヨ涓撳淇℃伅锛屽苟鏆傚瓨浜嶴urveyTask瀵硅薄 if (CollectionUtil.isNotEmpty(taskList)) { List<Long> taskIdList = new ArrayList<>(); for (SurveyTask surveyTask : taskList) { taskIdList.add(surveyTask.getOid()); } List<Map<String, Object>> listExpert = surveyTaskService.selectExpertBySurveyTaskIdList(taskIdList); if (CollectionUtil.isNotEmpty(listExpert)) { User expert = new User(); for (SurveyTask surveyTask : taskList) { for (Map<String, Object> map : listExpert) { if (surveyTask.getTask() != null) { if (surveyTask.getTask().getOid() != null && map.get("taskId") != null) { if (surveyTask.getTask().getOid().toString().equals(map.get("taskId").toString())) { expert.setRealName(map.get("realName").toString()); expert.setPhone(map.get("phone").toString()); surveyTask.setUser(expert); } }else{ surveyTask.setUser(new User()); } } } } } return taskList; } return null; } /** * 鎴戠殑浠诲姟 椤甸潰鍒濆鍖� * @param request * @return */ @RequestMapping("taskList/init") public ModelAndView taskList(HttpServletRequest request,DwzPage page){ ModelAndView view = new ModelAndView("wechat/task/taskList"); User user= userService.getCurrentUser(); if (user != null) { page.setNumPerPage(10); // List<SurveyTask> taskList = surveyTaskService.findSurveyTaskListByUserAndStatusForPage(user, null, SurveyTaskStatus.DISTRIBUTE,page); List<Map<String,Object>> taskList = surveyTaskService.findSurveyTaskListByUserForPage(user, null, SurveyTaskStatus.DISTRIBUTE,page); //鏌ヨ涓撳淇℃伅锛屽苟鏆傚瓨浜嶴urveyTask瀵硅薄 // taskList = selectExpert(taskList); view.addObject("taskList",taskList); view.addObject("user",user); } return view; } @RequestMapping("gettaskListForPage") public ModelAndView gettaskListForPage(HttpServletRequest request,DwzPage page){ ModelAndView view = new ModelAndView("wechat/task/taskList_table"); User user= (User) userService.getCurrentUser(); if(user != null ){ List<SurveyTask> taskList = surveyTaskService.findSurveyTaskListByUserAndStatusForPage(user, null, null,page); view.addObject("taskList",taskList); } return view; } @RequestMapping("gettaskListByStatusForPage") public ModelAndView gettaskListByStatusForPage(SurveyTaskStatus surveyTaskStatus,HttpServletRequest request,DwzPage page){ ModelAndView view = new ModelAndView("wechat/task/taskListByStatus"); User user= userService.getCurrentUser(); if(user != null ){ String search = request.getParameter("search"); // List<SurveyTask> taskList = surveyTaskService.findSurveyTaskListByUserAndStatusForPage(user, search,surveyTaskStatus,page); List<Map<String,Object>> taskList=surveyTaskService.findSurveyTaskListByUserForPage(user, search,surveyTaskStatus,page); //鏌ヨ涓撳淇℃伅锛屽苟鏆傚瓨浜嶴urveyTask瀵硅薄 // taskList = selectExpert(taskList); view.addObject("taskList",taskList); view.addObject("surveyTaskStatus",surveyTaskStatus); } return view; } /** * 鎺ュ彈浠诲姟 涓氬姟澶勭悊 * @param taskId * @return */ @RequestMapping("receiveTask") public JSONObject receiveTask(Long taskId){ return surveyTaskService.receiveTask(taskId); } /** * 鎷掔粷浠诲姟 涓氬姟澶勭悊 * @param taskId * @return */ @RequestMapping("refuseTask") public JSONObject refuseTask(Long taskId){ return surveyTaskService.refuseTask(taskId); } /** * 浠诲姟杞氦 椤甸潰鍒濆鍖� * @param taskId * @return */ @RequestMapping("transferTask/init") public ModelAndView transferTaskInit(Long taskId){ ModelAndView view = new ModelAndView("wechat/task/transferTask"); User currentUser = userService.getCurrentUser(); SurveyTask surveyTask = surveyTaskService.findSurveyTaskByOid(taskId); if(surveyTask.getSurveyTaskStatus().equals(SurveyTaskStatus.TRANSFERAUDIT)){ view.addObject("surveyAssist",surveyAssistService.findSurveyAssistByTaskAndStepAndStatus(surveyTask, null, AssignStatus.NON,AssignType.TRANSFERTASK)); } view.addObject("surveyTask", surveyTask); // List<User> userList= userService.findUserListByOrgIdAndUserType(currentUser.getOrg().getOid(),DictConst.USERTYPE_CM); Long orgId=commonService.getFengPingOrg(surveyTask.getActivity()); List<User> userList= userService.findExpertUser(orgId,DictConst.USERTYPE_CM); view.addObject("userList", userList); view.addObject("user", currentUser); return view; } /** * 浠诲姟杞氦 涓氬姟澶勭悊 * @return */ @RequestMapping("transferTask") public JSONObject transferTask(SurveyAssist surveyAssist){ User user = userService.getCurrentUser(); surveyAssist.setUser(user); return surveyAssistService.transferTask(surveyAssist); } /** * 鐢宠涓撳 椤甸潰鍒濆鍖� * @param taskId * @return */ @RequestMapping("applyExpert/init") public ModelAndView applyExpertInit(Long taskId){ ModelAndView view = new ModelAndView("wechat/task/applyExpert"); User user = userService.getCurrentUser(); SurveyTask surveyTask = surveyTaskService.findSurveyTaskByOid(taskId); Activity activity = surveyTask.getActivity(); Long activityOid = activity.getOid(); Long orgId=commonService.getFengPingOrg(activity); view.addObject("surveyTask", surveyTask); // view.addObject("stepList",SurveyStep.values()); view.addObject("stepList",taskDao.selectApplyExpertStep(surveyTask.getTask().getOid())); view.addObject("user", user); view.addObject("taskList",surveyTaskService.findUnFinishedSurveyTaskListByUser(user)); // view.addObject("expertList",userService.findSurveyExpertUser(activity)); view.addObject("expertList",userService.findExpertUser(orgId,"17")); view.addObject("activityOid",activityOid); return view; } /** * 鐢宠涓撳 涓氬姟澶勭悊 * @param surveyAssist * @return */ @RequestMapping("applyExpert") public JSONObject applyExpert(SurveyAssist surveyAssist, HttpServletRequest request,String activityOid){ User user = userService.getCurrentUser(); surveyAssist.setUser(user); String expertsStr = request.getParameter("experts"); System.out.println("涓撳璁㈠崟娴嬭瘯锛屾敹鍒颁笓瀹秈ds1:"+expertsStr.toString()); StringBuffer expertBuffer = new StringBuffer(); int loop = 0; String[] experts = expertsStr.split("#"); for (String expert : experts) { if (StringUtil.isEmpty(expert)) { continue; } if(loop == 0) { expertBuffer.append(expert); } else{ expertBuffer.append("#").append(expert); } loop++; } System.out.println("涓撳璁㈠崟娴嬭瘯锛屾敹鍒颁笓瀹秈ds2:"+expertBuffer.toString()); surveyAssist.setExperts(expertBuffer.toString()); return surveyAssistService.applyExpert(surveyAssist); } /** * 鏌ヨ鍕樻煡璁″垝闃舵 * @param taskId * @return */ @RequestMapping("findFeedBackListByTaskId") public JSONObject findFeedBackListByTaskId(long taskId){ JSONObject json = new JSONObject(); JSONArray feedBackArr = new JSONArray(); List<Survey_FeedBack> feedBacks = surveyFeedBackService.findSurvey_FeedBackByTaskId(taskId); for (Survey_FeedBack feedBack : feedBacks) { JSONObject obj = new JSONObject(); obj.put("oid", feedBack.getOid()); obj.put("surveyStep", feedBack.getSurveyStep()); feedBackArr.add(obj); } String status = "200"; json.put("status", status); json.put("feedBacks", feedBackArr); return json; } /** * 鏌ヨ鍕樻煡璁″垝闃舵 * @param taskId * @return */ @RequestMapping("findSurveyPlanListByTaskIdForSiteSurvey") public JSONObject findSurveyPlanListByTaskIdForSiteSurvey(long taskId){ JSONObject json = new JSONObject(); JSONArray planArr = new JSONArray(); List<SurveyPlan> plans = surveyPlanService.findSurveyPlanByTaskId(taskId); for (SurveyPlan plan : plans) { if(plan.getTaskStatus().equals(PlanStatusEnum.NON) || plan.getTaskStatus().equals(PlanStatusEnum.CONTINUE)){ JSONObject obj = new JSONObject(); obj.put("oid", plan.getOid()); obj.put("time", plan.getTime()); planArr.add(obj); } } String status = "200"; json.put("status", status); json.put("plans", planArr); return json; } }