|  | @@ -0,0 +1,835 @@
 | 
	
		
			
				|  |  | +package com.jeeplus.modules.API.userinfo;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import com.google.common.collect.Lists;
 | 
	
		
			
				|  |  | +import com.google.common.collect.Maps;
 | 
	
		
			
				|  |  | +import com.jeeplus.common.json.AjaxJson;
 | 
	
		
			
				|  |  | +import com.jeeplus.common.utils.JPushClientUtil;
 | 
	
		
			
				|  |  | +import com.jeeplus.common.utils.StringUtils;
 | 
	
		
			
				|  |  | +import com.jeeplus.common.web.BaseController;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.act.entity.Act;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.act.service.ActTaskService;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.pushinfo.entity.Pushinfo;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.pushinfo.service.PushinfoService;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.sys.dao.CompanyDao;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.sys.dao.OfficeDao;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.sys.dao.RoleDao;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.sys.dao.UserDao;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.sys.entity.Company;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.sys.entity.Office;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.sys.entity.Role;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.sys.entity.User;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.sys.service.CompanyService;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.sys.service.OfficeService;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.sys.service.SystemService;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.sys.utils.UserUtils;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.sysuseroffice.entity.Useroffice;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.sysuseroffice.service.UserofficeService;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.utils.ErrorCode;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.workcompanyinfo.service.CompanyinfoService;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.workprojectnotify.entity.WorkProjectNotify;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.workprojectnotify.service.WorkProjectNotifyService;
 | 
	
		
			
				|  |  | +import com.jeeplus.modules.workprojectnotify.util.UtilNotify;
 | 
	
		
			
				|  |  | +import org.apache.commons.io.IOUtils;
 | 
	
		
			
				|  |  | +import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | +import org.springframework.stereotype.Controller;
 | 
	
		
			
				|  |  | +import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  | +import org.springframework.web.bind.annotation.RequestMapping;
 | 
	
		
			
				|  |  | +import org.springframework.web.bind.annotation.RequestMethod;
 | 
	
		
			
				|  |  | +import org.springframework.web.bind.annotation.ResponseBody;
 | 
	
		
			
				|  |  | +import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import javax.servlet.http.HttpServletRequest;
 | 
	
		
			
				|  |  | +import javax.servlet.http.HttpServletResponse;
 | 
	
		
			
				|  |  | +import java.io.InputStream;
 | 
	
		
			
				|  |  | +import java.io.UnsupportedEncodingException;
 | 
	
		
			
				|  |  | +import java.net.URLDecoder;
 | 
	
		
			
				|  |  | +import java.text.SimpleDateFormat;
 | 
	
		
			
				|  |  | +import java.util.*;
 | 
	
		
			
				|  |  | +import java.util.concurrent.locks.Lock;
 | 
	
		
			
				|  |  | +import java.util.concurrent.locks.ReentrantLock;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 搜索企业Controller
 | 
	
		
			
				|  |  | + * @author zmy
 | 
	
		
			
				|  |  | + * @version 2017-04-17
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +@Controller
 | 
	
		
			
				|  |  | +@RequestMapping(value = "${frontPath}/userInfo/searchcompany")
 | 
	
		
			
				|  |  | +public class JoinCompanyController extends BaseController{
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private CompanyDao companyDao;
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private OfficeDao officeDao;
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private UserDao userDao;
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private SystemService systemService;
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private OfficeService officeService;
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private UserofficeService userofficeService;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private CompanyinfoService companyinfoService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private RoleDao roleDao;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private ActTaskService actTaskService;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private  PushinfoService pushinfoService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private CompanyService companyService;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private WorkProjectNotifyService workProjectNotifyService;
 | 
	
		
			
				|  |  | +    private Lock lock = new ReentrantLock();
 | 
	
		
			
				|  |  | +	/**
 | 
	
		
			
				|  |  | +	 * 根据企业名称搜索
 | 
	
		
			
				|  |  | +	 * @throws UnsupportedEncodingException 
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +	@ResponseBody
 | 
	
		
			
				|  |  | +	@RequestMapping(value = "getUserInfoSearchCompanyList", method=RequestMethod.GET)
 | 
	
		
			
				|  |  | +	public AjaxJson findCompany (String companyName,HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) throws UnsupportedEncodingException
 | 
	
		
			
				|  |  | +	{  
 | 
	
		
			
				|  |  | +	   AjaxJson j=new AjaxJson();
 | 
	
		
			
				|  |  | +	   Office company=new Office();
 | 
	
		
			
				|  |  | +	   company.setName(companyName);
 | 
	
		
			
				|  |  | +	   company.setType("1");
 | 
	
		
			
				|  |  | +	   List<Office> companyList=officeDao.findListByCompanyName(company);
 | 
	
		
			
				|  |  | +	   List<Map<String,Object>> mapList = Lists.newArrayList();
 | 
	
		
			
				|  |  | +	   for(int i = 0; i < companyList.size(); i++){
 | 
	
		
			
				|  |  | +		   Map<String,Object> map = Maps.newHashMap();
 | 
	
		
			
				|  |  | +		   Office com=companyList.get(i);
 | 
	
		
			
				|  |  | +           if (!com.getId().equals("1")){
 | 
	
		
			
				|  |  | +               map.put("companyName", com.getName());
 | 
	
		
			
				|  |  | +               map.put("master", com.getMaster()==null || UserUtils.get(com.getMaster())==null?"":UserUtils.get(com.getMaster()).getName());
 | 
	
		
			
				|  |  | +               map.put("masterId", com.getMaster()==null ?"":com.getMaster());
 | 
	
		
			
				|  |  | +               map.put("companyLogo", com.getLogo() == null || com.getLogo().equals("") ? "" : com.getLogo());
 | 
	
		
			
				|  |  | +               map.put("companyId", com.getId());
 | 
	
		
			
				|  |  | +               Useroffice useroffice = new Useroffice();
 | 
	
		
			
				|  |  | +               useroffice.setCompanyId(com.getId());
 | 
	
		
			
				|  |  | +               useroffice.setStatus("3");
 | 
	
		
			
				|  |  | +               List<Useroffice> userofficeList=userofficeService.findList(useroffice);
 | 
	
		
			
				|  |  | +               map.put("count", userofficeList.size());
 | 
	
		
			
				|  |  | +               mapList.add(map);
 | 
	
		
			
				|  |  | +           }
 | 
	
		
			
				|  |  | +	   }
 | 
	
		
			
				|  |  | +	   j.put("data",mapList);
 | 
	
		
			
				|  |  | +       j.setErrorCode(ErrorCode.code_1004);
 | 
	
		
			
				|  |  | +       j.setMsg("获取企业信息成功");
 | 
	
		
			
				|  |  | +	   return j;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 启动加入公司流程
 | 
	
		
			
				|  |  | +     * @param
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @Transactional
 | 
	
		
			
				|  |  | +    @RequestMapping(value = "saveJoinCompany", method = RequestMethod.GET)
 | 
	
		
			
				|  |  | +    @ResponseBody
 | 
	
		
			
				|  |  | +    public AjaxJson saveJoinCompany(HttpServletRequest request, HttpServletResponse response) {
 | 
	
		
			
				|  |  | +        AjaxJson ajaxJson = new AjaxJson();
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            lock.lock();
 | 
	
		
			
				|  |  | +            HashMap<String, String> requestMap = findRequestMap(request);
 | 
	
		
			
				|  |  | +            Map<String, Object> variables = Maps.newHashMap();
 | 
	
		
			
				|  |  | +            Useroffice companyinfo = new Useroffice();
 | 
	
		
			
				|  |  | +            String master = URLDecoder.decode(requestMap.get("master")==null?"":requestMap.get("master"), "UTF-8");
 | 
	
		
			
				|  |  | +            String reason = URLDecoder.decode(requestMap.get("reason")==null?"":requestMap.get("reason"), "UTF-8");
 | 
	
		
			
				|  |  | +            String companyId = URLDecoder.decode(requestMap.get("companyId")==null?"":requestMap.get("companyId"), "UTF-8");
 | 
	
		
			
				|  |  | +            if(UserUtils.getSelectCompany().getId().equals(companyId)){
 | 
	
		
			
				|  |  | +                logger.error("加入公司流程失败:您是该企业员工");
 | 
	
		
			
				|  |  | +                ajaxJson.setSuccess(false);
 | 
	
		
			
				|  |  | +                ajaxJson.setErrorCode(ErrorCode.code_1009);
 | 
	
		
			
				|  |  | +                ajaxJson.setMsg("您已经是该企业员工,不能重复加入");
 | 
	
		
			
				|  |  | +                return ajaxJson;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //该公司下所有的岗位
 | 
	
		
			
				|  |  | +            List<Role> roleList = systemService.getRoleList("",companyId);
 | 
	
		
			
				|  |  | +            Role role = new Role();
 | 
	
		
			
				|  |  | +            if (roleList!=null && roleList.size()!=0){
 | 
	
		
			
				|  |  | +                for (Role r :roleList){
 | 
	
		
			
				|  |  | +                    //要的是管理员
 | 
	
		
			
				|  |  | +                    if (org.apache.commons.lang3.StringUtils.isNotBlank(r.getEnname()) && r.getEnname().equals("gly")){
 | 
	
		
			
				|  |  | +                        role = r;
 | 
	
		
			
				|  |  | +                        break;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //该公司下拥有管理员岗位的所有员工
 | 
	
		
			
				|  |  | +            List<User> userList = userDao.findUserByRole(role);
 | 
	
		
			
				|  |  | +            //该公司下拥有管理员岗位的所有员工
 | 
	
		
			
				|  |  | +            List<String> assigneeList = new ArrayList<String>();
 | 
	
		
			
				|  |  | +            if (userList!=null && userList.size()!=0) {
 | 
	
		
			
				|  |  | +                for (User user : userList) {
 | 
	
		
			
				|  |  | +                    assigneeList.add(user.getId());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            String delFlag="0";
 | 
	
		
			
				|  |  | +            variables.put("glyList", assigneeList);
 | 
	
		
			
				|  |  | +            variables.put("glycount",assigneeList.size());
 | 
	
		
			
				|  |  | +            companyinfo.setUserId(UserUtils.getUser().getId());//申请人
 | 
	
		
			
				|  |  | +            companyinfo.setCompanyId(companyId);//这一步必须
 | 
	
		
			
				|  |  | +            List<Useroffice> companyinfoList = companyinfoService.findListByCompany(companyinfo);
 | 
	
		
			
				|  |  | +            boolean state = false;
 | 
	
		
			
				|  |  | +            if (companyinfoList!=null){
 | 
	
		
			
				|  |  | +                if (companyinfoList.size()==0) {
 | 
	
		
			
				|  |  | +                    state = true;
 | 
	
		
			
				|  |  | +                }/*else{
 | 
	
		
			
				|  |  | +                    for (Useroffice companyinfo1:companyinfoList){
 | 
	
		
			
				|  |  | +                        if (companyinfo1.getStatus().equals("4")){
 | 
	
		
			
				|  |  | +                            state = true;
 | 
	
		
			
				|  |  | +                        }else {
 | 
	
		
			
				|  |  | +                            state = false;
 | 
	
		
			
				|  |  | +                            break;
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }*/
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (state){
 | 
	
		
			
				|  |  | +                companyinfo.setStatus("1");
 | 
	
		
			
				|  |  | +                companyinfo.setDelFlag(delFlag);
 | 
	
		
			
				|  |  | +                companyinfo.setRemarks(reason);
 | 
	
		
			
				|  |  | +                companyinfo.setMaster(master);//
 | 
	
		
			
				|  |  | +                companyinfoService.save(companyinfo, variables);
 | 
	
		
			
				|  |  | +                ajaxJson.setSuccess(true);
 | 
	
		
			
				|  |  | +                ajaxJson.setErrorCode(ErrorCode.code_1004);
 | 
	
		
			
				|  |  | +                ajaxJson.setMsg("加入公司申请已经提交");
 | 
	
		
			
				|  |  | +                ajaxJson.put("id", companyinfo.getId());
 | 
	
		
			
				|  |  | +                String title = "团队申请";
 | 
	
		
			
				|  |  | +                String content="您有新的团队申请";
 | 
	
		
			
				|  |  | +                Map extras = new HashMap();
 | 
	
		
			
				|  |  | +                Pushinfo pushinfo = new Pushinfo();
 | 
	
		
			
				|  |  | +                pushinfo.setCurrentUser(UserUtils.getUser());
 | 
	
		
			
				|  |  | +                Office office = officeService.get(companyId);
 | 
	
		
			
				|  |  | +                if (reason.length()>16){
 | 
	
		
			
				|  |  | +                    reason = reason.substring(0,16)+"...";
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                reason = UserUtils.getUser().getName()+ "\n"
 | 
	
		
			
				|  |  | +                        +"申请加入:"+office==null || office.getName()==null || office.getName().equals("")?"":office.getName()+ "\n"
 | 
	
		
			
				|  |  | +                        +"申请理由:"+reason;
 | 
	
		
			
				|  |  | +                pushinfo.setRemarks(reason);
 | 
	
		
			
				|  |  | +                pushinfo.setUserId(UserUtils.getUser().getId());
 | 
	
		
			
				|  |  | +                pushinfo.setType("2002");
 | 
	
		
			
				|  |  | +                pushinfo.setPushId(companyinfo.getId());
 | 
	
		
			
				|  |  | +                pushinfo.setTitle(title);
 | 
	
		
			
				|  |  | +                pushinfo.setContent(content);
 | 
	
		
			
				|  |  | +                pushinfo.setParentType("singleCompanyNews");
 | 
	
		
			
				|  |  | +                pushinfo.setCompanyId(companyId);
 | 
	
		
			
				|  |  | +                pushinfo.setAddcontent("joincompany");
 | 
	
		
			
				|  |  | +                pushinfo.setMobile("ios,android");
 | 
	
		
			
				|  |  | +                pushinfo.setStatus("0");
 | 
	
		
			
				|  |  | +                extras.put("type", "2002");
 | 
	
		
			
				|  |  | +                extras.put("id", companyinfo.getId());
 | 
	
		
			
				|  |  | +                extras.put("userId",UserUtils.getUser().getId());
 | 
	
		
			
				|  |  | +                extras.put("userName",UserUtils.getUser().getName());
 | 
	
		
			
				|  |  | +                //向所有管理员发送推送
 | 
	
		
			
				|  |  | +                int num = 0 ;
 | 
	
		
			
				|  |  | +                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 | 
	
		
			
				|  |  | +                String str = "申请人:"+UserUtils.getUser().getName()+",申请时间:"+sdf.format(new Date());
 | 
	
		
			
				|  |  | +                WorkProjectNotify workProjectNotify = UtilNotify
 | 
	
		
			
				|  |  | +                        .saveNotify(companyinfo.getId(),
 | 
	
		
			
				|  |  | +                                null,
 | 
	
		
			
				|  |  | +                                companyId,
 | 
	
		
			
				|  |  | +                                title,
 | 
	
		
			
				|  |  | +                                str,
 | 
	
		
			
				|  |  | +                                "75",
 | 
	
		
			
				|  |  | +                                "0",
 | 
	
		
			
				|  |  | +                                "待审批",
 | 
	
		
			
				|  |  | +                                ""
 | 
	
		
			
				|  |  | +                        );
 | 
	
		
			
				|  |  | +                if(assigneeList!=null && assigneeList.size()>0){
 | 
	
		
			
				|  |  | +                    for(String alias : assigneeList){
 | 
	
		
			
				|  |  | +                        if(StringUtils.isNotBlank(alias)){
 | 
	
		
			
				|  |  | +                            pushinfo.setPushUserId(alias);
 | 
	
		
			
				|  |  | +                            pushinfo.setId("");
 | 
	
		
			
				|  |  | +                            pushinfoService.save(pushinfo);
 | 
	
		
			
				|  |  | +                            boolean b = JPushClientUtil.sendNotificationToAlias(title, content, extras, alias);
 | 
	
		
			
				|  |  | +                            if(b) num++;
 | 
	
		
			
				|  |  | +                            workProjectNotify.setUser(new User(alias));
 | 
	
		
			
				|  |  | +                            workProjectNotify.setId("");
 | 
	
		
			
				|  |  | +                            workProjectNotify.setNotifyRole("公司管理员审批");
 | 
	
		
			
				|  |  | +                            workProjectNotifyService
 | 
	
		
			
				|  |  | +                                    .save(workProjectNotify);
 | 
	
		
			
				|  |  | +                            UserUtils.pushIm(alias,str);
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                if (num>0){
 | 
	
		
			
				|  |  | +                    ajaxJson.setMsg("申请加入公司流程成功!");
 | 
	
		
			
				|  |  | +                }else {
 | 
	
		
			
				|  |  | +                    ajaxJson.setMsg("申请加入公司流程成功");
 | 
	
		
			
				|  |  | +                    ajaxJson.setErrorCode(ErrorCode.code_2006);
 | 
	
		
			
				|  |  | +                    ajaxJson.setSuccess(false);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }else{
 | 
	
		
			
				|  |  | +                logger.error("申请加入公司流程失败:您已申请加入企业");
 | 
	
		
			
				|  |  | +                ajaxJson.setSuccess(false);
 | 
	
		
			
				|  |  | +                ajaxJson.setErrorCode(ErrorCode.code_1009);
 | 
	
		
			
				|  |  | +                ajaxJson.setMsg("您已申请加入企业,不能重复申请加入");
 | 
	
		
			
				|  |  | +                return ajaxJson;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        } catch (Exception e) {
 | 
	
		
			
				|  |  | +            logger.error("申请加入公司流程失败:", e);
 | 
	
		
			
				|  |  | +            ajaxJson.setSuccess(false);
 | 
	
		
			
				|  |  | +            ajaxJson.setErrorCode(ErrorCode.code_2004);
 | 
	
		
			
				|  |  | +            ajaxJson.setMsg("申请加入公司流程失败");
 | 
	
		
			
				|  |  | +        }finally {
 | 
	
		
			
				|  |  | +            lock.unlock();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return ajaxJson;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 查看我的企业
 | 
	
		
			
				|  |  | +     * @param
 | 
	
		
			
				|  |  | +     * @return json数据
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @RequestMapping(value = "getMyOfficeList", method=RequestMethod.GET)
 | 
	
		
			
				|  |  | +    @ResponseBody
 | 
	
		
			
				|  |  | +    public AjaxJson getMyOfficeList(HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
 | 
	
		
			
				|  |  | +        AjaxJson j = new AjaxJson();
 | 
	
		
			
				|  |  | +        try{
 | 
	
		
			
				|  |  | +            String userId = request.getParameter("userId");
 | 
	
		
			
				|  |  | +            if (userId==null){
 | 
	
		
			
				|  |  | +                userId = UserUtils.getUser().getId();
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            Useroffice companyinfo = new Useroffice();
 | 
	
		
			
				|  |  | +            companyinfo.setUserId(userId);
 | 
	
		
			
				|  |  | +            companyinfo.setDelFlag("0");
 | 
	
		
			
				|  |  | +            List<Useroffice> companyinfoList = companyinfoService.findListByCompany(companyinfo);
 | 
	
		
			
				|  |  | +            List<Map<String,Object>> mapList = Lists.newArrayList();
 | 
	
		
			
				|  |  | +            if (companyinfoList!=null && companyinfoList.size()!=0){
 | 
	
		
			
				|  |  | +                for (Useroffice com :companyinfoList){
 | 
	
		
			
				|  |  | +                    if (!"3".equals(com.getStatus())){
 | 
	
		
			
				|  |  | +                        String companyId =com.getCompanyId();
 | 
	
		
			
				|  |  | +                        String status = com.getStatus();
 | 
	
		
			
				|  |  | +                        String companyInfoId = com.getId();
 | 
	
		
			
				|  |  | +                        Office off = officeService.get(companyId);
 | 
	
		
			
				|  |  | +                        Map<String,Object> map = Maps.newHashMap();
 | 
	
		
			
				|  |  | +                        map.put("companyName", off.getName());
 | 
	
		
			
				|  |  | +                        map.put("companyLogo", off.getLogo() == null ? "" : off.getLogo());
 | 
	
		
			
				|  |  | +                        map.put("companyQrcode", off.getCompanyQrcode()==null?"":off.getCompanyQrcode());
 | 
	
		
			
				|  |  | +                        map.put("companyId", off.getId());
 | 
	
		
			
				|  |  | +                        map.put("status", status);
 | 
	
		
			
				|  |  | +                        map.put("approvalId", companyInfoId);
 | 
	
		
			
				|  |  | +                        map.put("master", off.getMaster()==null || UserUtils.get(off.getMaster())==null?"":UserUtils.get(off.getMaster()).getName());
 | 
	
		
			
				|  |  | +                        map.put("masterId", off.getMaster()==null ?"":off.getMaster());
 | 
	
		
			
				|  |  | +                        Useroffice useroffice = new Useroffice();
 | 
	
		
			
				|  |  | +                        useroffice.setCompanyId(off.getId());
 | 
	
		
			
				|  |  | +                        useroffice.setStatus("3");
 | 
	
		
			
				|  |  | +                        List<Useroffice> userofficeList=userofficeService.findList(useroffice);
 | 
	
		
			
				|  |  | +                        map.put("count", userofficeList.size());
 | 
	
		
			
				|  |  | +                        List<Act> list2 = actTaskService.toMyStartedList(com.getProcessInstanceId());
 | 
	
		
			
				|  |  | +                        if (list2!=null && list2.size()!=0){
 | 
	
		
			
				|  |  | +                            Act act1 = list2.get(list2.size()-1);
 | 
	
		
			
				|  |  | +                            map.put("taskId", act1.getTaskId());
 | 
	
		
			
				|  |  | +                            map.put("taskName",act1.getTaskName());
 | 
	
		
			
				|  |  | +                            map.put("procInsId", act1.getProcInsId());
 | 
	
		
			
				|  |  | +                            map.put("procDefId", act1.getProcDefId());
 | 
	
		
			
				|  |  | +                            map.put("actStatus", act1.getStatus());
 | 
	
		
			
				|  |  | +                            map.put("taskDefKey", act1.getTaskDefKey());
 | 
	
		
			
				|  |  | +                            map.put("procDefKey", "joincompany");
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        map.put("isgly", 0);
 | 
	
		
			
				|  |  | +                        Role role2=new Role();
 | 
	
		
			
				|  |  | +                        role2.setCompany(off);
 | 
	
		
			
				|  |  | +                        role2.setUser(UserUtils.get(userId));
 | 
	
		
			
				|  |  | +                        List<Role> roleList2=roleDao.findList(role2);
 | 
	
		
			
				|  |  | +                        for(Role role : roleList2){
 | 
	
		
			
				|  |  | +                            map.put("officeId", role.getOffice().getId());
 | 
	
		
			
				|  |  | +                            map.put("officeName", role.getOffice().getName());
 | 
	
		
			
				|  |  | +                            if(org.apache.commons.lang3.StringUtils.isNotBlank(role.getEnname()) && role.getEnname().endsWith("gly")||role.getEnname().equals("system")){
 | 
	
		
			
				|  |  | +                                map.put("isgly", 1);
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            if(org.apache.commons.lang3.StringUtils.isNotBlank(role.getEnname()) && role.getEnname().endsWith("gly")||role.getEnname().equals("system")){
 | 
	
		
			
				|  |  | +                                List<User> userList2=userDao.findUserByRole(role);
 | 
	
		
			
				|  |  | +                                for (int k = 0; k < userList2.size(); k++) {
 | 
	
		
			
				|  |  | +                                    if(userList2.get(k)!=null ||userList2.get(k).equals("null")){
 | 
	
		
			
				|  |  | +                                        map.put("glyName", userList2.get(k).getName());
 | 
	
		
			
				|  |  | +                                    }
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                            }else{
 | 
	
		
			
				|  |  | +                                map.put("glyName", "");
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        mapList.add(map);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            j.put("maxNum",mapList.size());
 | 
	
		
			
				|  |  | +            j.put("data",mapList);
 | 
	
		
			
				|  |  | +            j.setMsg("获取列表成功");
 | 
	
		
			
				|  |  | +            j.setErrorCode(ErrorCode.code_1004);
 | 
	
		
			
				|  |  | +        }catch (Exception e){
 | 
	
		
			
				|  |  | +            logger.info("e="+e.getMessage());
 | 
	
		
			
				|  |  | +            j.setErrorCode(ErrorCode.code_2004);
 | 
	
		
			
				|  |  | +            j.setMsg("获取列表失败");
 | 
	
		
			
				|  |  | +            j.put("maxNum",0);
 | 
	
		
			
				|  |  | +            j.put("data","");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return j;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	/**
 | 
	
		
			
				|  |  | +	 * 申请加入企业
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +	/*@ResponseBody
 | 
	
		
			
				|  |  | +	@RequestMapping(value = "joinCompany", method=RequestMethod.GET)
 | 
	
		
			
				|  |  | +	public AjaxJson joinCompany (String id,String companyId,HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) throws UnsupportedEncodingException
 | 
	
		
			
				|  |  | +	{  
 | 
	
		
			
				|  |  | +		AjaxJson j=new AjaxJson();	
 | 
	
		
			
				|  |  | +		Office company = officeService.get(companyId);//获取公司
 | 
	
		
			
				|  |  | +		Role comRole = systemService.getRoleByEnname(StringUtils.getPinYinHeadChar(company.getName(),2)+"xyg");//获取公司xyg的岗位
 | 
	
		
			
				|  |  | +		if(UserUtils.get(id).getId()!=null){
 | 
	
		
			
				|  |  | +			List<Office> companyList = UserUtils.getAllCompany(UserUtils.get(id));//获取用户所有企业
 | 
	
		
			
				|  |  | +			for (Office office : companyList) {
 | 
	
		
			
				|  |  | +				if(comRole.getCompany().getId().equals(office.getId())){
 | 
	
		
			
				|  |  | +					j.setMsg( "申请失败,你已是该企业成员");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		List<Office> list = officeService.findList(true);//获取当前用户有权限访问的部门
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        EasemobInfo easemobImuser = new EasemobInfo();
 | 
	
		
			
				|  |  | +        for (int i=0; i<list.size(); i++){
 | 
	
		
			
				|  |  | +			Office e = list.get(i);
 | 
	
		
			
				|  |  | +			if (e.getName().equals(company.getName()+"人力部")){
 | 
	
		
			
				|  |  | +				UserUtils.getUser().setOffice(e);
 | 
	
		
			
				|  |  | +                easemobImuser.setUserId(UserUtils.getUser().getId());
 | 
	
		
			
				|  |  | +                easemobImuser.setGroupId(e.getGroupId());
 | 
	
		
			
				|  |  | +                easemobImuser.setJoinStatus("2");
 | 
	
		
			
				|  |  | +                easemobImuser.setGroupName(e.getGroupName());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			if (e.getName().equals(company.getName())){
 | 
	
		
			
				|  |  | +				UserUtils.getUser().setCompany(e);
 | 
	
		
			
				|  |  | +                easemobImuser.setUserId(id);
 | 
	
		
			
				|  |  | +                easemobImuser.setGroupId(e.getGroupId());
 | 
	
		
			
				|  |  | +                easemobImuser.setJoinStatus("2");
 | 
	
		
			
				|  |  | +                easemobImuser.setGroupName(e.getGroupName());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        easemobInfoService.save(easemobImuser);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if(comRole!=null){
 | 
	
		
			
				|  |  | +            UserUtils.getUser().setComId(comRole.getCompany().getId());
 | 
	
		
			
				|  |  | +            systemService.assignUserToRole(comRole, UserUtils.getUser());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +		systemService.outUserInRole(new Role("1"), UserUtils.getUser());
 | 
	
		
			
				|  |  | +		j.setMsg("您的申请已提交,请在“我的管理企业”中查看结果");
 | 
	
		
			
				|  |  | +		return j;				
 | 
	
		
			
				|  |  | +	}*/
 | 
	
		
			
				|  |  | +	/**
 | 
	
		
			
				|  |  | +	 * 申请内容详情
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +	@ResponseBody
 | 
	
		
			
				|  |  | +    @RequestMapping(value = "applicationContent",method=RequestMethod.POST)
 | 
	
		
			
				|  |  | +	    public AjaxJson applicationContent(String id,HttpServletRequest request, HttpServletResponse response) {
 | 
	
		
			
				|  |  | +		 String contentStr="";
 | 
	
		
			
				|  |  | +	      try {         
 | 
	
		
			
				|  |  | +	    	  InputStream  is = request.getInputStream();         
 | 
	
		
			
				|  |  | +	         contentStr= IOUtils.toString(is, "utf-8");     
 | 
	
		
			
				|  |  | +	          } catch (Exception e) {
 | 
	
		
			
				|  |  | +	                   e.printStackTrace();     
 | 
	
		
			
				|  |  | +	              }
 | 
	
		
			
				|  |  | +	      AjaxJson j=new AjaxJson();
 | 
	
		
			
				|  |  | +	      Map<String,String> requestMap= StringUtils.StringToJson(contentStr);
 | 
	
		
			
				|  |  | +	      String remarks =requestMap.get("remarks");	
 | 
	
		
			
				|  |  | +	      User user=new User();
 | 
	
		
			
				|  |  | +	      user.setId(id);
 | 
	
		
			
				|  |  | +	      Company company=new Company();
 | 
	
		
			
				|  |  | +	      company.setCreateBy(user);
 | 
	
		
			
				|  |  | +	      company.setRemarks(remarks);		
 | 
	
		
			
				|  |  | +	      company.preInsert();
 | 
	
		
			
				|  |  | +	      companyDao.insert(company);	      	      	      			
 | 
	
		
			
				|  |  | +	      j.setMsg("您的申请已提交,请在“我的管理企业”中查看结果");
 | 
	
		
			
				|  |  | +	      j.setErrorCode(ErrorCode.code_1004);
 | 
	
		
			
				|  |  | +	      return j; 
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	/**
 | 
	
		
			
				|  |  | +	 * 重新申请内容详情
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +	@ResponseBody
 | 
	
		
			
				|  |  | +	@RequestMapping(value = "againApplicationContent",method=RequestMethod.POST)
 | 
	
		
			
				|  |  | +	public AjaxJson againApplicationContent(String id,HttpServletRequest request, HttpServletResponse response) {
 | 
	
		
			
				|  |  | +		String contentStr="";
 | 
	
		
			
				|  |  | +		try {
 | 
	
		
			
				|  |  | +			InputStream  is = request.getInputStream();
 | 
	
		
			
				|  |  | +			contentStr= IOUtils.toString(is, "utf-8");
 | 
	
		
			
				|  |  | +		} catch (Exception e) {
 | 
	
		
			
				|  |  | +			e.printStackTrace();
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		AjaxJson j=new AjaxJson();
 | 
	
		
			
				|  |  | +		Map<String,String> requestMap= StringUtils.StringToJson(contentStr);
 | 
	
		
			
				|  |  | +		String remarks =requestMap.get("remarks");
 | 
	
		
			
				|  |  | +		User user=new User();
 | 
	
		
			
				|  |  | +		user.setId(id);
 | 
	
		
			
				|  |  | +		Company company=new Company();
 | 
	
		
			
				|  |  | +		company.setCreateBy(user);
 | 
	
		
			
				|  |  | +		company.setRemarks(remarks);
 | 
	
		
			
				|  |  | +		company.preInsert();
 | 
	
		
			
				|  |  | +		companyDao.insert(company);
 | 
	
		
			
				|  |  | +		j.setMsg("您的申请已提交,请在“我的管理企业”中查看结果");
 | 
	
		
			
				|  |  | +		j.setErrorCode(ErrorCode.code_1004);
 | 
	
		
			
				|  |  | +		return j;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 重新申请加入企业
 | 
	
		
			
				|  |  | +     *//*
 | 
	
		
			
				|  |  | +    @ResponseBody
 | 
	
		
			
				|  |  | +    @RequestMapping(value = "getUserInfoAgainJoinCompanyList", method=RequestMethod.GET)
 | 
	
		
			
				|  |  | +    public AjaxJson againJoinCompany (String id,String companyId,HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) throws UnsupportedEncodingException
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        AjaxJson j=new AjaxJson();
 | 
	
		
			
				|  |  | +        Office company = officeService.get(companyId);
 | 
	
		
			
				|  |  | +        Role comRole = systemService.getRoleByEnname(StringUtils.getPinYinHeadChar(company.getName(),2)+"xyg");
 | 
	
		
			
				|  |  | +        if(UserUtils.get(id).getId()!=null){
 | 
	
		
			
				|  |  | +            List<Office> companyList = UserUtils.getAllCompany(UserUtils.get(id));
 | 
	
		
			
				|  |  | +            if(companyList!=null && companyList.size()!=0) {
 | 
	
		
			
				|  |  | +                for (Office office : companyList) {
 | 
	
		
			
				|  |  | +                    if (comRole!=null && comRole.getCompany().getId().equals(office.getId())) {
 | 
	
		
			
				|  |  | +                        j.setMsg("申请失败,你已是该企业成员");
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        List<Office> list = officeService.findList(true);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        EasemobInfo easemobImuser = new EasemobInfo();
 | 
	
		
			
				|  |  | +        for (int i=0; i<list.size(); i++){
 | 
	
		
			
				|  |  | +            Office e = list.get(i);
 | 
	
		
			
				|  |  | +            if (e.getName().equals(company.getName()+"人力部")){
 | 
	
		
			
				|  |  | +                UserUtils.getUser().setOffice(e);
 | 
	
		
			
				|  |  | +                easemobImuser.setUserId(id);
 | 
	
		
			
				|  |  | +                easemobImuser.setGroupId(e.getGroupId());
 | 
	
		
			
				|  |  | +                easemobImuser.setJoinStatus("2");
 | 
	
		
			
				|  |  | +                easemobImuser.setGroupName(e.getGroupName());
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (e.getName().equals(company.getName())){
 | 
	
		
			
				|  |  | +                UserUtils.getUser().setCompany(e);
 | 
	
		
			
				|  |  | +                easemobImuser.setUserId(id);
 | 
	
		
			
				|  |  | +                easemobImuser.setGroupId(e.getGroupId());
 | 
	
		
			
				|  |  | +                easemobImuser.setJoinStatus("2");
 | 
	
		
			
				|  |  | +                easemobImuser.setGroupName(e.getGroupName());
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        easemobInfoService.save(easemobImuser);
 | 
	
		
			
				|  |  | +        systemService.assignUserToRole(comRole, UserUtils.getUser());
 | 
	
		
			
				|  |  | +        systemService.outUserInRole(new Role("1"), UserUtils.getUser());
 | 
	
		
			
				|  |  | +        j.setMsg("您的申请已提交,请在“我的管理企业”中查看结果");
 | 
	
		
			
				|  |  | +        return j;
 | 
	
		
			
				|  |  | +    }*/
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 根据推送的id拿到申请加入企业的详情,然后进行审批
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @RequestMapping(value = "getJoinCompanyInfo",method = RequestMethod.GET)
 | 
	
		
			
				|  |  | +    @ResponseBody
 | 
	
		
			
				|  |  | +    public AjaxJson getJoinCompanyInfo(HttpServletRequest request){
 | 
	
		
			
				|  |  | +        AjaxJson ajaxJson = new AjaxJson();
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            Map<String,String> requestMap = findRequestMap(request);
 | 
	
		
			
				|  |  | +            String companyinfoId = requestMap.get("companyinfoId");
 | 
	
		
			
				|  |  | +            Useroffice companyinfo  = companyinfoService.get(companyinfoId);
 | 
	
		
			
				|  |  | +            LinkedHashMap<String,Object> returnMap = new LinkedHashMap<>();
 | 
	
		
			
				|  |  | +            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 | 
	
		
			
				|  |  | +            if(companyinfo==null || StringUtils.isBlank(companyinfo.getId())){
 | 
	
		
			
				|  |  | +                ajaxJson.setSuccess(false);
 | 
	
		
			
				|  |  | +                ajaxJson.setMsg("无指定的审批消息或当前审批消息已过时,请刷新后重试!");
 | 
	
		
			
				|  |  | +                ajaxJson.setErrorCode(ErrorCode.code_2004);
 | 
	
		
			
				|  |  | +                return ajaxJson ;
 | 
	
		
			
				|  |  | +            }else{
 | 
	
		
			
				|  |  | +                String currentComId = UserUtils.getSelectCompany().getId();
 | 
	
		
			
				|  |  | +                String comId = StringUtils.isBlank(companyinfo.getCompanyId())?"":companyinfo.getCompanyId();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                //如果是申请人只查看,不做审批
 | 
	
		
			
				|  |  | +                if(StringUtils.isNotBlank(companyinfo.getUserId()) && companyinfo.getUserId().equals(UserUtils.getUser().getId())){
 | 
	
		
			
				|  |  | +                    ajaxJson.setSuccess(true);
 | 
	
		
			
				|  |  | +                    ajaxJson.setErrorCode(ErrorCode.code_1004);
 | 
	
		
			
				|  |  | +                    ajaxJson.setMsg("获取申请详情成功");
 | 
	
		
			
				|  |  | +                    returnMap.put("userName",(UserUtils.getByUserId(companyinfo.getUserId())!=null)?UserUtils.getByUserId(companyinfo.getUserId()).getName():"");
 | 
	
		
			
				|  |  | +                    returnMap.put("companyName",(officeService.get(companyinfo.getCompanyId())!=null)?officeService.get(companyinfo.getCompanyId()).getName():"");
 | 
	
		
			
				|  |  | +                    returnMap.put("remarks",companyinfo.getRemarks());
 | 
	
		
			
				|  |  | +                    returnMap.put("officeName",(officeService.get(companyinfo.getOfficeId())!=null)?officeService.get(companyinfo.getOfficeId()).getName():"");
 | 
	
		
			
				|  |  | +                    returnMap.put("status",companyinfo.getStatus());
 | 
	
		
			
				|  |  | +                    ajaxJson.setBody(returnMap);
 | 
	
		
			
				|  |  | +                    return ajaxJson;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if(companyinfo!=null){
 | 
	
		
			
				|  |  | +                returnMap.put("companyinfoId",companyinfo.getId());
 | 
	
		
			
				|  |  | +                returnMap.put("userId",companyinfo.getUserId());
 | 
	
		
			
				|  |  | +                User user = UserUtils.get(companyinfo.getUserId());
 | 
	
		
			
				|  |  | +                returnMap.put("userName",user!=null?user.getName():"");
 | 
	
		
			
				|  |  | +                String companyId = companyinfo.getCompanyId();
 | 
	
		
			
				|  |  | +                //该公司下所有的岗位
 | 
	
		
			
				|  |  | +                List<Role> roleList = systemService.getRoleList("",companyId);
 | 
	
		
			
				|  |  | +                Role role = new Role();
 | 
	
		
			
				|  |  | +                if (roleList!=null && roleList.size()!=0){
 | 
	
		
			
				|  |  | +                    for (Role r :roleList){
 | 
	
		
			
				|  |  | +                        //要的是管理员而
 | 
	
		
			
				|  |  | +                        if (org.apache.commons.lang3.StringUtils.isNotBlank(r.getEnname()) && r.getEnname().endsWith("gly")){
 | 
	
		
			
				|  |  | +                            role = r;
 | 
	
		
			
				|  |  | +                            break;
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                //该公司下拥有管理员岗位的所有员工
 | 
	
		
			
				|  |  | +                List<User> userList = userDao.findUserByRole(role);
 | 
	
		
			
				|  |  | +                //该公司下拥有管理员岗位的所有员工
 | 
	
		
			
				|  |  | +                StringBuilder builder = new StringBuilder();
 | 
	
		
			
				|  |  | +                if (userList!=null && userList.size()!=0) {
 | 
	
		
			
				|  |  | +                    for (User u : userList) {
 | 
	
		
			
				|  |  | +                       if(StringUtils.isNotBlank(u.getId())){
 | 
	
		
			
				|  |  | +                           builder.append(",").append(u.getId());
 | 
	
		
			
				|  |  | +                       }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                String masterIds = "";
 | 
	
		
			
				|  |  | +                if(builder.length()>2){
 | 
	
		
			
				|  |  | +                    masterIds = builder.substring(1).toString();
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                returnMap.put("masterIds",masterIds);
 | 
	
		
			
				|  |  | +                returnMap.put("masterName",UserUtils.get(UserUtils.getUser().getId()).getName());
 | 
	
		
			
				|  |  | +                returnMap.put("companyId",companyId);
 | 
	
		
			
				|  |  | +                returnMap.put("companyName",UserUtils.getSelectCompany().getName());
 | 
	
		
			
				|  |  | +                returnMap.put("remarks",companyinfo.getRemarks());
 | 
	
		
			
				|  |  | +                returnMap.put("status",companyinfo.getStatus());
 | 
	
		
			
				|  |  | +                returnMap.put("createBy",companyinfo.getCreateBy()!=null?companyinfo.getCreateBy().getId():"");
 | 
	
		
			
				|  |  | +                returnMap.put("createDate",companyinfo.getCreateDate()!=null?sdf.format(companyinfo.getCreateDate()):"");
 | 
	
		
			
				|  |  | +                returnMap.put("updateBy",companyinfo.getUpdateBy()!=null?companyinfo.getUpdateBy().getId():"");
 | 
	
		
			
				|  |  | +                returnMap.put("updateDate",companyinfo.getUpdateDate()!=null?sdf.format(companyinfo.getUpdateDate()):"");
 | 
	
		
			
				|  |  | +                Pushinfo pushinfo = new Pushinfo();
 | 
	
		
			
				|  |  | +                pushinfo.setPushId(companyinfoId);
 | 
	
		
			
				|  |  | +                List<Pushinfo> pushinfos = pushinfoService.getByPushId(pushinfo);
 | 
	
		
			
				|  |  | +                if (pushinfos!=null && pushinfos.size()!=0) {
 | 
	
		
			
				|  |  | +                    Pushinfo push = pushinfos.get(0);
 | 
	
		
			
				|  |  | +                    if (StringUtils.isNotBlank(push.getStatus())&& push.getStatus().equals("1")){
 | 
	
		
			
				|  |  | +                        returnMap.put("selectStatus", "1");
 | 
	
		
			
				|  |  | +                        returnMap.put("officeName", companyinfo.getCreateBy().getOffice().getName());
 | 
	
		
			
				|  |  | +                        returnMap.put("comment", companyinfo.getRemarks());
 | 
	
		
			
				|  |  | +                        returnMap.put("actStuatus", companyinfo.getStatus());
 | 
	
		
			
				|  |  | +                    }else {
 | 
	
		
			
				|  |  | +                        returnMap.put("selectStatus", "0");
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }else {
 | 
	
		
			
				|  |  | +                    logger.error("获取申请详情失败");
 | 
	
		
			
				|  |  | +                    ajaxJson.setSuccess(false);
 | 
	
		
			
				|  |  | +                    ajaxJson.setErrorCode(ErrorCode.code_2004);
 | 
	
		
			
				|  |  | +                    ajaxJson.setMsg("获取申请详情失败,当前申请不存在");
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            ajaxJson.setSuccess(true);
 | 
	
		
			
				|  |  | +            ajaxJson.setErrorCode(ErrorCode.code_1004);
 | 
	
		
			
				|  |  | +            ajaxJson.setMsg("获取申请详情成功");
 | 
	
		
			
				|  |  | +            ajaxJson.setBody(returnMap);
 | 
	
		
			
				|  |  | +            return ajaxJson;
 | 
	
		
			
				|  |  | +        }catch (Exception e) {
 | 
	
		
			
				|  |  | +            e.printStackTrace();
 | 
	
		
			
				|  |  | +            logger.error("获取申请详情失败",e);
 | 
	
		
			
				|  |  | +            ajaxJson.setSuccess(false);
 | 
	
		
			
				|  |  | +            ajaxJson.setErrorCode(ErrorCode.code_2004);
 | 
	
		
			
				|  |  | +            ajaxJson.setMsg("获取申请详情失败");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return ajaxJson;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 根据Useroffice的id,查询出待办任务
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @Transactional
 | 
	
		
			
				|  |  | +    @ResponseBody
 | 
	
		
			
				|  |  | +    @RequestMapping(value = "getJoinCompanyAct",method = RequestMethod.GET)
 | 
	
		
			
				|  |  | +    public AjaxJson getJoinCompanyAct(Act act , HttpServletRequest request){
 | 
	
		
			
				|  |  | +        AjaxJson ajaxJson = new AjaxJson();
 | 
	
		
			
				|  |  | +        Map<String,String> requestMap = findRequestMap(request);
 | 
	
		
			
				|  |  | +        String companyinfoId = requestMap.get("companyinfoId");
 | 
	
		
			
				|  |  | +        if(StringUtils.isBlank(companyinfoId)){
 | 
	
		
			
				|  |  | +            logger.error("获取审核流程信息失败");
 | 
	
		
			
				|  |  | +            ajaxJson.setSuccess(false);
 | 
	
		
			
				|  |  | +            ajaxJson.setErrorCode(ErrorCode.code_2004);
 | 
	
		
			
				|  |  | +            ajaxJson.setMsg("获取审批流程信息失败");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            Useroffice companyinfo = companyinfoService.get(companyinfoId);
 | 
	
		
			
				|  |  | +            act.setProcDefKey("joincompany");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            List<Act>  actList = actTaskService.todoList(act);
 | 
	
		
			
				|  |  | +            if(actList!=null && actList.size()>0){
 | 
	
		
			
				|  |  | +                for(Act a : actList){
 | 
	
		
			
				|  |  | +                    if(a!=null && a.getProcInsId().equals(companyinfo.getProcessInstanceId())){
 | 
	
		
			
				|  |  | +                        companyinfo.setAct(a);
 | 
	
		
			
				|  |  | +                        break;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            LinkedHashMap<String,Object> map = new LinkedHashMap<>();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            act = companyinfo.getAct();
 | 
	
		
			
				|  |  | +            String taskDefKey = act.getTaskDefKey();
 | 
	
		
			
				|  |  | +            if("apply_end".equals(taskDefKey)) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                List<Map<String,String>> allDeptsList = new ArrayList<>();
 | 
	
		
			
				|  |  | +                Office office = officeService.get(companyinfo.getCompanyId());
 | 
	
		
			
				|  |  | +                List<Office> allDepts = officeService.getAllDepts(office.getId());
 | 
	
		
			
				|  |  | +                if(allDepts!=null && allDepts.size()>0){
 | 
	
		
			
				|  |  | +                    for(Office o : allDepts){
 | 
	
		
			
				|  |  | +                        Map<String,String> officeMap = new HashMap<>();
 | 
	
		
			
				|  |  | +                        officeMap.put("officeId",o.getId());
 | 
	
		
			
				|  |  | +                        officeMap.put("officeName",o.getName());
 | 
	
		
			
				|  |  | +                        allDeptsList.add(officeMap);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                User master = UserUtils.getUser();//审批人
 | 
	
		
			
				|  |  | +                companyinfo.setAct(act);
 | 
	
		
			
				|  |  | +                companyinfo.setMaster(master.getId());
 | 
	
		
			
				|  |  | +                String companyId = UserUtils.getSelectCompany().getId();
 | 
	
		
			
				|  |  | +                Role roles = new Role();
 | 
	
		
			
				|  |  | +                roles.setCompany(new Office(companyId));
 | 
	
		
			
				|  |  | +                List<Map<String,String>> allRolesList = new ArrayList<>();
 | 
	
		
			
				|  |  | +                List<Role> allRoles = UserUtils.getRoleListByCompany(roles);
 | 
	
		
			
				|  |  | +                if(allRoles!=null && allRoles.size()>0){
 | 
	
		
			
				|  |  | +                    for(Role r : allRoles){
 | 
	
		
			
				|  |  | +                        Map<String,String> roleMap = new HashMap<>();
 | 
	
		
			
				|  |  | +                        roleMap.put("roleId",r.getId());
 | 
	
		
			
				|  |  | +                        roleMap.put("roleName",r.getName());
 | 
	
		
			
				|  |  | +                        allRolesList.add(roleMap);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                companyinfoService.save(companyinfo);//更新操作
 | 
	
		
			
				|  |  | +                map.put("companyinfoId",companyinfoId);
 | 
	
		
			
				|  |  | +                map.put("masterId",master.getId());//审批人
 | 
	
		
			
				|  |  | +                map.put("masterName",master.getName());
 | 
	
		
			
				|  |  | +                map.put("companyId", office.getId());//公司
 | 
	
		
			
				|  |  | +                map.put("companyName", office.getName());
 | 
	
		
			
				|  |  | +                map.put("allDeptsList",allDeptsList);
 | 
	
		
			
				|  |  | +                map.put("allRolesList", allRolesList);
 | 
	
		
			
				|  |  | +                ajaxJson.setBody(map);
 | 
	
		
			
				|  |  | +                ajaxJson.setMsg("获取审批流程信息成功");
 | 
	
		
			
				|  |  | +                ajaxJson.setErrorCode(ErrorCode.code_1004);
 | 
	
		
			
				|  |  | +                ajaxJson.setSuccess(true);
 | 
	
		
			
				|  |  | +            }else{
 | 
	
		
			
				|  |  | +                ajaxJson.setMsg("没有待审批任务");
 | 
	
		
			
				|  |  | +                ajaxJson.setErrorCode(ErrorCode.code_1004);
 | 
	
		
			
				|  |  | +                ajaxJson.setSuccess(false);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        } catch (Exception e) {
 | 
	
		
			
				|  |  | +            e.printStackTrace();
 | 
	
		
			
				|  |  | +            logger.error("获取审批流程信息失败",e);
 | 
	
		
			
				|  |  | +            ajaxJson.setSuccess(false);
 | 
	
		
			
				|  |  | +            ajaxJson.setErrorCode(ErrorCode.code_2004);
 | 
	
		
			
				|  |  | +            ajaxJson.setMsg("获取审批流程信息失败");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return ajaxJson;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     *  保存审核信息
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @Transactional
 | 
	
		
			
				|  |  | +    @RequestMapping("saveJoinCompanyAct")
 | 
	
		
			
				|  |  | +    @ResponseBody
 | 
	
		
			
				|  |  | +    public AjaxJson saveJoinCompanyAct(Act act,HttpServletRequest request){
 | 
	
		
			
				|  |  | +        AjaxJson ajaxJson = new AjaxJson();
 | 
	
		
			
				|  |  | +        Map<String,String> requestMap = findRequestMap(request);
 | 
	
		
			
				|  |  | +        LinkedHashMap<String,Object> map = new LinkedHashMap<>();
 | 
	
		
			
				|  |  | +        LinkedHashMap returnMap = new LinkedHashMap();
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            lock.lock();
 | 
	
		
			
				|  |  | +            String companyinfoId = requestMap.get("companyinfoId");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            String roleId = requestMap.get("roleId");
 | 
	
		
			
				|  |  | +            String flag = requestMap.get("flag");//['同意','拒绝']
 | 
	
		
			
				|  |  | +            String comment = requestMap.get("comment");
 | 
	
		
			
				|  |  | +            Useroffice useroffice = companyinfoService.get(companyinfoId);
 | 
	
		
			
				|  |  | +            act.setProcDefKey("joincompany");
 | 
	
		
			
				|  |  | +            List<Act>  actList = actTaskService.todoList(act);
 | 
	
		
			
				|  |  | +            if(actList!=null && actList.size()>0){
 | 
	
		
			
				|  |  | +                for(Act a : actList){
 | 
	
		
			
				|  |  | +                    if(a!=null && a.getProcInsId().equals(useroffice.getProcessInstanceId())){
 | 
	
		
			
				|  |  | +                        a.setFlag(flag);
 | 
	
		
			
				|  |  | +                        a.setComment(comment);
 | 
	
		
			
				|  |  | +                        useroffice.setAct(a);
 | 
	
		
			
				|  |  | +                        break;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            User master = UserUtils.getUser();
 | 
	
		
			
				|  |  | +            returnMap.put("flag",flag);
 | 
	
		
			
				|  |  | +            returnMap.put("joinUserId",useroffice.getUserId());
 | 
	
		
			
				|  |  | +            returnMap.put("joinUserName",UserUtils.get(useroffice.getUserId()).getName());
 | 
	
		
			
				|  |  | +            returnMap.put("masterId",master.getId());//审批人
 | 
	
		
			
				|  |  | +            returnMap.put("masterName",master.getName());
 | 
	
		
			
				|  |  | +            returnMap.put("comment",comment);
 | 
	
		
			
				|  |  | +            returnMap.put("status","0");
 | 
	
		
			
				|  |  | +            if(!"yes".equals(flag)){
 | 
	
		
			
				|  |  | +                companyinfoService.auditSave(useroffice);
 | 
	
		
			
				|  |  | +                ajaxJson.setBody(returnMap);
 | 
	
		
			
				|  |  | +                ajaxJson.setErrorCode("0000");
 | 
	
		
			
				|  |  | +                ajaxJson.setMsg("审批拒绝");
 | 
	
		
			
				|  |  | +                ajaxJson.setSuccess(false);
 | 
	
		
			
				|  |  | +            }else {
 | 
	
		
			
				|  |  | +                String companyId = useroffice.getCompanyId();
 | 
	
		
			
				|  |  | +                List<Company> companyList = companyService.getByCompany(companyId);
 | 
	
		
			
				|  |  | +                Company company = new Company();
 | 
	
		
			
				|  |  | +                if (companyList != null && companyList.size() != 0) {
 | 
	
		
			
				|  |  | +                    company = companyList.get(0);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                returnMap.put("companyId",company.getId());
 | 
	
		
			
				|  |  | +                returnMap.put("companyName",company.getName());
 | 
	
		
			
				|  |  | +                Role comRole = new Role();
 | 
	
		
			
				|  |  | +                List<Role> roleList = systemService.getRoleList("",companyId);
 | 
	
		
			
				|  |  | +                if (StringUtils.isNotBlank(roleId) && roleList!=null && roleList.size()!=0){
 | 
	
		
			
				|  |  | +                    comRole = systemService.getRole(roleId);
 | 
	
		
			
				|  |  | +                    if(!roleList.contains(comRole)){
 | 
	
		
			
				|  |  | +                        comRole = systemService.getRoleByEnname( companyId,comRole.getOffice(),"yg");
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }else {
 | 
	
		
			
				|  |  | +                    comRole = systemService.getRoleByEnname( companyId, null,"yg");
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                useroffice.setRoleList(roleList);
 | 
	
		
			
				|  |  | +                Office office = officeService.get(comRole.getOffice());
 | 
	
		
			
				|  |  | +                returnMap.put("roleId",comRole.getId());
 | 
	
		
			
				|  |  | +                returnMap.put("roleName",comRole.getName());
 | 
	
		
			
				|  |  | +                returnMap.put("officeId",office.getId());
 | 
	
		
			
				|  |  | +                returnMap.put("officeName",office.getName());
 | 
	
		
			
				|  |  | +                String[] extra = new String[4];
 | 
	
		
			
				|  |  | +                extra[0] = useroffice.getUserId();
 | 
	
		
			
				|  |  | +                extra[1] = companyId;
 | 
	
		
			
				|  |  | +                extra[2] = comRole.getId();//不能直接用roleId
 | 
	
		
			
				|  |  | +                extra[3] = office.getId();//不能直接用roleId
 | 
	
		
			
				|  |  | +                companyinfoService.auditSave(useroffice,extra);
 | 
	
		
			
				|  |  | +                ajaxJson.setBody(returnMap);
 | 
	
		
			
				|  |  | +                ajaxJson.setErrorCode(ErrorCode.code_1004);
 | 
	
		
			
				|  |  | +                ajaxJson.setMsg("审批通过");
 | 
	
		
			
				|  |  | +                ajaxJson.setSuccess(true);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }catch (Exception e){
 | 
	
		
			
				|  |  | +            logger.error("审批失败",e);
 | 
	
		
			
				|  |  | +            ajaxJson.setSuccess(false);
 | 
	
		
			
				|  |  | +            ajaxJson.setErrorCode(ErrorCode.code_2004);
 | 
	
		
			
				|  |  | +            ajaxJson.setMsg("审批失败");
 | 
	
		
			
				|  |  | +            ajaxJson.setBody(map);
 | 
	
		
			
				|  |  | +        }finally {
 | 
	
		
			
				|  |  | +            lock.unlock();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return ajaxJson;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 |