poi导出模板(我的备份)

/**
* There are <a href="https://github.com/thinkgem/jeesite">JeeSite</a> code generation
*/
package com.bns.modules.cadre.selection.web;

import java.awt.image.BufferedImage;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Method;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.CellRangeAddress;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.hssf.util.Region;
import org.apache.poi.ss.formula.functions.T;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Workbook;
import org.jxls.common.Context;
import org.jxls.util.JxlsHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
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.multipart.MultipartFile;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import com.bns.component.export.ExcelExport;
import com.bns.component.export.QRCodeUtils;
import com.bns.modules.cadre.selection.service.DemocracyRecommendService;
import com.bns.modules.cadre.selection.service.MotionService;
import com.bns.modules.common.empUtils.service.EmpUtilsService;
import com.bns.modules.common.utils.CommonUtil;
import com.bns.modules.common.utils.StandardManage;
import com.bns.utils.FormBean;
import com.bns.utils.FormBeanUtils;
import com.google.common.collect.Maps;
import com.thinkgem.jeesite.common.config.Global;
import com.thinkgem.jeesite.common.persistence.Page;
import com.thinkgem.jeesite.common.utils.DateUtils;
import com.thinkgem.jeesite.common.utils.excel.ImportExcel;
import com.thinkgem.jeesite.common.web.BaseController;
import com.thinkgem.jeesite.modules.sys.entity.Dict;
import com.thinkgem.jeesite.modules.sys.entity.User;
import com.thinkgem.jeesite.modules.sys.utils.DictUtils;
import com.thinkgem.jeesite.modules.sys.utils.UserUtils;

/**
* 民主推荐Controller
*
* @author wzq
* @version 2018-07-26
*/
@Controller
@RequestMapping(value = "${adminPath}/selection/democracyRecommend")
public class DemocracyRecommendController extends BaseController {

@Autowired
private DemocracyRecommendService democracyRecommendService;
@Autowired
private MotionService motionService;

/**
* 民主推荐查询
*
* @param formbean
* @param request
* @param response
* @param model
* @return
* @author klx
*/
@RequestMapping(value = {"list", ""})
public String list(FormBean formbean, HttpServletRequest request, HttpServletResponse response, Model model) {
FormBeanUtils.preDeal(formbean, request);
Page<Map<String, Object>> page = democracyRecommendService.getDemocraticRecommendProcessPageList(new Page<Map<String, Object>>(request, response), formbean);
model.addAttribute("map", formbean);
model.addAttribute("page", page);

return "modules/cadre/selection/democracyRecommendList";
}

/**
* 民主推荐保存
*
* @param formbean
* @param request
* @param response
* @return
* @author klx
*/
@RequestMapping(value = "saveQuasiPersonList")
public
@ResponseBody
Map<String, Object> saveQuasiPersonList(FormBean formbean, Model model,String tvNumId,String pid, RedirectAttributes redirectAttributes) {
String result = StandardManage.OPERATE_SUCCESS;
Map<String, Object> bean = formbean.getBean();
Date day=new Date();

//获取当前用户
User user = UserUtils.getUser();
String UPDATE_BY="";
if(user != null && null != user.getLoginName()){
UPDATE_BY=user.getLoginName();
}
try {

formbean.getBean().put("tvNumId", tvNumId.split(","));
formbean.getBean().put("pid", pid);
//取得挺谈话推荐的人员集合
List<Map<String, Object>> list = democracyRecommendService.getDemocraticRecommendProcessNoPageList(FormBeanUtils.parse(bean));
if(list != null && list.size()>0){
for(Map<String, Object> m:list){
//根据人是编号判断是否拟任人中是否存在该人员,存在就不新增
String ZGH = m.get("ZGH").toString();
String PROCESS_ID =pid;

Map<String, Object> zghMap = Maps.newHashMap();
zghMap.put("ZGH", ZGH);
zghMap.put("PROCESS_ID", PROCESS_ID);
//判断拟任人是否存在
List<Map<String, Object>> quasiPersonList = democracyRecommendService.getQuasiPersonList(zghMap,null);
if(quasiPersonList != null && quasiPersonList.size()>0){
bean.put("result", "拟任人存在重复");
return bean;
}

}
for(Map<String, Object> m:list){

Map<String, Object> insertQuasiPersonMap = Maps.newHashMap();

//根据人是编号判断是否拟任人中是否存在该人员,存在就不新增
insertQuasiPersonMap.put("NUM_ID", EmpUtilsService.getBeanId());
insertQuasiPersonMap.put("PROCESS_ID", pid);
insertQuasiPersonMap.put("EMP_ID", m.get("ZGH"));
insertQuasiPersonMap.put("BASE_INFO_ID",m.get("PER_NUM_ID"));


insertQuasiPersonMap.put("NUMBER_ID",m.get("SFZJH"));
insertQuasiPersonMap.put("PERSON_POST",m.get("EP_NUM_ID"));

//1正常2淘汰,拟任人阶段码:正常/淘汰
insertQuasiPersonMap.put("QUASI_STAGE","1");

insertQuasiPersonMap.put("CREATE_BY",UPDATE_BY );
insertQuasiPersonMap.put("CREATE_DATE", day);
insertQuasiPersonMap.put("UPDATE_BY", UPDATE_BY);
insertQuasiPersonMap.put("UPDATE_DATE", day);
insertQuasiPersonMap.put("DEL_FLAG","0" );

democracyRecommendService.insertQuasiPerson(insertQuasiPersonMap);

}
}

bean.put("result", result);
} catch (Exception e) {
e.printStackTrace();
result = StandardManage.OPERATE_FAIL;
bean.put("result", result);
}
return bean;
}
/**
* 民主推荐查询
*
* @param formbean
* @param request
* @param response
* @param model
* @return
* @author klx
* @throws ParseException
*/
@RequestMapping(value = "addQuasiPersonList")
public String addQuasiPersonList(FormBean formbean, HttpServletRequest request, HttpServletResponse response, Model model) throws ParseException {
FormBeanUtils.preDeal(formbean, request);
String pid = request.getParameter("pid");
formbean.getBean().put("pid", pid);
SimpleDateFormat format = new SimpleDateFormat("yyyy-M-dd");
Page<Map<String, Object>> page = democracyRecommendService.getThtjVotePersonPageList(new Page<Map<String, Object>>(request, response), formbean);
if(page != null && page.getList() != null && page.getList().size()>0){
for(Map<String, Object> map:page.getList()){

if(map.containsKey("XB") && map.get("XB")!= null && !("").equals(map.get("XB").toString().trim())){
map.put("XB",DictUtils.getDictLabel(map.get("XB").toString(), "XB", ""));
}else{
map.put("XB", "");
}
if(map.containsKey("csrq") && map.get("csrq")!= null && !("").equals(map.get("csrq").toString().trim())){
map.put("csrq",DateUtils.formatDate(format.parse(map.get("csrq").toString()), "yyyy-MM-dd"));

}else{
map.put("csrq", "");
}
if(map.containsKey("zzmm") && map.get("zzmm")!= null && !("").equals(map.get("zzmm").toString().trim())){
map.put("zzmm",DictUtils.getDictLabel(map.get("zzmm").toString(), "ZZMM", ""));

}else{
map.put("zzmm", "");
}


}
}


model.addAttribute("map", formbean);
model.addAttribute("page", page);
model.addAttribute("pid", pid);


return "modules/cadre/selection/democracyRecommendAddQuasiPersonList";
}

/**
* 民主推荐页面
*
* @param id
* @param formbean
* @param request
* @param response
* @param model
* @return
* @author klx
* @throws ParseException
*/
@RequestMapping(value = "form")
public String form(String numid, String addFlag,String voteFlag,String hytjId,String did,
String D_PRESERVE04,FormBean formbean, Model model,HttpServletRequest request, HttpServletResponse response) throws ParseException {

User user = UserUtils.getUser();
Map<String, Object> idMap1 = Maps.newHashMap();
idMap1.put("NUM_ID", did);
idMap1.put("oneRound", "oneRound");

Map<String, Object> idMap2 = Maps.newHashMap();
idMap2.put("NUM_ID", did);
idMap2.put("secondRound", "secondRound");
List<Map<String, Object>> idList1 = democracyRecommendService.getMztjHytjId(idMap1);
List<Map<String, Object>> idList2 = democracyRecommendService.getMztjHytjId(idMap2);
String hytjId1 ="";
String hytjId2 ="";
String twoVoteFlag = "1";
if(idList1 != null && idList1.size()>0){
hytjId1 = idList1.get(0).get("NUM_ID").toString();
}
if(idList2 != null && idList2.size()>0){
hytjId2 = idList2.get(0).get("NUM_ID").toString();
}

//存的是认识表id,登录后用教职工号去取
Map<String, Object> bean = formbean.getBean();

if(null == bean){
bean = Maps.newHashMap();

}

if (StringUtils.isNotEmpty(numid)) {
bean.put("NUM_ID", numid);
bean.put("addFlag", addFlag);
}

bean = democracyRecommendService.getDemocracyRecommendProcessEnty(bean);
if(null != bean){

if(StringUtils.isNotEmpty(voteFlag)){
if(2== Integer.parseInt(voteFlag)){
twoVoteFlag ="2";
hytjId = hytjId2;
}else{
twoVoteFlag ="1";
hytjId = hytjId1;
}
}else{
if(null != bean.get("D_PRESERVE05")){
if( 6 > Integer.parseInt(bean.get("D_PRESERVE05").toString()) && 0!=Integer.parseInt(bean.get("D_PRESERVE05").toString())){
twoVoteFlag ="1";
hytjId = hytjId1;
}
else if( 6 <= Integer.parseInt(bean.get("D_PRESERVE05").toString())){
twoVoteFlag ="2";
hytjId = hytjId2;
}

else if( 0 == Integer.parseInt(bean.get("D_PRESERVE05").toString())){
twoVoteFlag ="2";
hytjId = hytjId2;
}

else{
twoVoteFlag ="1";
hytjId = hytjId1;
}

}else{
twoVoteFlag ="1";
hytjId = hytjId1;
}
}

Map<String, Object> entity = Maps.newHashMap();
entity.put("LOGIN_NAME", user.getLoginName());
entity =motionService.getTMidRsPartyId(entity);
if(null != entity){

String HANDLE_ID = entity.get("NUM_ID").toString();
String NAME = entity.get("XM").toString();


bean.put("HYTJ_HANDLE_ID_HID",HANDLE_ID);
bean.put("HYTJ_NAME_HID", NAME);
}else{
bean.put("HYTJ_HANDLE_ID_HID","");
bean.put("HYTJ_NAME_HID", "");
}


Date finishDate = new Date();
bean.put("finishDate", finishDate);

}

Map<String, Object> obj = formbean.getBean();
obj.put("HYTJ_ID", hytjId);
obj.put("voteFlag", twoVoteFlag);
List<Map<String, Object>> democracyRecommendList = democracyRecommendService.gettCadreHytjHxmdList(obj);

SimpleDateFormat format = new SimpleDateFormat("yyyy-M-dd");
int listSize = 0;
String baseInfoId = "";
if(democracyRecommendList != null && democracyRecommendList.size()>0){
listSize = democracyRecommendList.size();
for(Map<String, Object> map:democracyRecommendList){
baseInfoId += map.get("PER_NUM_ID")+",";
if(map.containsKey("XB") && map.get("XB")!= null && !("").equals(map.get("XB").toString().trim())){
map.put("XB",DictUtils.getDictLabel(map.get("XB").toString(), "XB", ""));
}else{
map.put("XB", "");
}
if(map.containsKey("csrq") && map.get("csrq")!= null && !("").equals(map.get("csrq").toString().trim())){
map.put("csrq",DateUtils.formatDate(format.parse(map.get("csrq").toString()), "yyyy-MM-dd"));

}else{
map.put("csrq", "");
}
if(map.containsKey("zzmm") && map.get("zzmm")!= null && !("").equals(map.get("zzmm").toString().trim())){
map.put("zzmm",DictUtils.getDictLabel(map.get("zzmm").toString(), "ZZMM", ""));

}else{
map.put("zzmm", "");
}


}

}
if(!("").equals(baseInfoId)){
baseInfoId = baseInfoId.substring(0,baseInfoId.length()-1);
}

Map<String, Object> map = Maps.newHashMap();
List<Map<String, Object>> hytjVotelist = null;

map.put("HYTJ_ID", hytjId);
map.put("voteFlag", twoVoteFlag);
if(null != democracyRecommendService.gettCadreHytjVotelist(map) && democracyRecommendService.gettCadreHytjVotelist(map).size() >0){
hytjVotelist = democracyRecommendService.gettCadreHytjVotelist(map);

}

//取得谈话推荐的集合数据
Map<String, Object> thtjMap = Maps.newHashMap();
List<Map<String, Object>> thtjVotelist = null;

thtjMap.put("NUM_ID", numid);
if(null != democracyRecommendService.getmztjVoteList(thtjMap) && democracyRecommendService.getmztjVoteList(thtjMap).size() >0){
thtjVotelist = democracyRecommendService.getmztjVoteList(thtjMap);

}
//取得谈话信息
Map<String, Object> thtjInfo = democracyRecommendService.getTHTJInfo(thtjMap);

Map<String, Object> zghMap = Maps.newHashMap();
zghMap.put("PROCESS_ID", numid);

//取得你任人集合,确认拟任人
List<Map<String, Object>> quasiPersonList = democracyRecommendService.getQuasiPersonList(zghMap,null);
if(quasiPersonList != null && quasiPersonList.size()>0){
for(Map<String, Object> quasiPersonMap:quasiPersonList){
if(quasiPersonMap.containsKey("XB") && quasiPersonMap.get("XB")!= null && !("").equals(quasiPersonMap.get("XB").toString().trim())){
quasiPersonMap.put("XB",DictUtils.getDictLabel(quasiPersonMap.get("XB").toString(), "XB", ""));
}else{
quasiPersonMap.put("XB", "");
}
if(quasiPersonMap.containsKey("csrq") && quasiPersonMap.get("csrq")!= null && !("").equals(quasiPersonMap.get("csrq").toString().trim())){
quasiPersonMap.put("csrq",DateUtils.formatDate(format.parse(quasiPersonMap.get("csrq").toString()), "yyyy-MM-dd"));

}else{
quasiPersonMap.put("csrq", "");
}
if(quasiPersonMap.containsKey("zzmm") && quasiPersonMap.get("zzmm")!= null && !("").equals(quasiPersonMap.get("zzmm").toString().trim())){
quasiPersonMap.put("zzmm",DictUtils.getDictLabel(quasiPersonMap.get("zzmm").toString(), "ZZMM", ""));

}else{
quasiPersonMap.put("zzmm", "");
}


}
}


//取得会议推荐的数据
Map<String, Object> hytjMap = Maps.newHashMap();

hytjMap.put("NUM_ID", numid);
hytjMap.put("addFlag", addFlag);
hytjMap.put("PRESERVE04", twoVoteFlag);
Map<String, Object> hytjInfo = democracyRecommendService.getDemocracyRecommendHytjInfo(hytjMap);
if(bean != null && hytjInfo !=null){
if(hytjInfo.containsKey("TPFS") && null != hytjInfo.get("TPFS")){
bean.put("TPFS", hytjInfo.get("TPFS"));
}else{
bean.put("TPFS", "");
}
}

//取得综合评价信息
Map<String, Object> zhpjMap = Maps.newHashMap();
//会议id
zhpjMap.put("THTJ_ID",hytjId);
List<Map<String, Object>> zhpjList = democracyRecommendService.getZHPJVoteSumList(zhpjMap);
//取得民主测评信息
Map<String, Object> mzcpMap = Maps.newHashMap();
//会议id
mzcpMap.put("THTJ_ID",hytjId);
mzcpMap = democracyRecommendService.getMZCPVoteSum(mzcpMap);


model.addAttribute("zhpjList", zhpjList);

model.addAttribute("mzcpMap", mzcpMap);
model.addAttribute("addFlag", addFlag);
model.addAttribute("twoVoteFlag", twoVoteFlag);

model.addAttribute("quasiPersonList", quasiPersonList);
model.addAttribute("thtjInfo", thtjInfo);
model.addAttribute("hytjInfo", hytjInfo);
model.addAttribute("D_PRESERVE04", D_PRESERVE04);
model.addAttribute("thtjVotelist", thtjVotelist);
model.addAttribute("hytjId1", hytjId1);
model.addAttribute("hytjId2", hytjId2);
model.addAttribute("hytjVotelist", hytjVotelist);
model.addAttribute("empNameIdHid", baseInfoId);
model.addAttribute("list", democracyRecommendList);
model.addAttribute("listSize", listSize);
model.addAttribute("map", new FormBean(bean));



return "modules/cadre/selection/democracyRecommendForm";
}

/**
* 民主推荐保存
*
* @param formbean
* @param request
* @param response
* @return
* @author wzq
*/
@RequestMapping(value = "save")
public
@ResponseBody
String save(FormBean formbean, Model model, RedirectAttributes redirectAttributes) {
String result = StandardManage.OPERATE_SUCCESS;
Map<String, Object> bean = formbean.getBean();
try {
democracyRecommendService.saveDemocracyRecommend(FormBeanUtils.parse(bean));
} catch (Exception e) {
e.printStackTrace();
result = StandardManage.OPERATE_FAIL;
}
return result;
}

/**
* 民主推荐删除
*
* @param request
* @param response
* @return
* @author wzq
* @throws IOException
* @throws ServletException
*/
@RequestMapping(value = "deleteTalkPerson")
public
@ResponseBody
Map<String, Object> deleteTalkPerson(String numid,String addFlag,String did,HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String msg = StandardManage.OPERATE_SUCCESS;
Map<String, Object> result = Maps.newHashMap();

if (StringUtils.isEmpty(numid)) {
msg = StandardManage.OPERATE_FAIL;
}

Map<String, Object> map = new HashMap<String, Object>();
map.put("NUM_ID", numid);
try {
democracyRecommendService.deletePartTimeApplication(map);
} catch (Exception e) {
e.printStackTrace();
msg = StandardManage.OPERATE_FAIL;
}
result.put("result", msg);

return result;
}
/**
* 拟任人删除
*
* @param request
* @param response
* @return
* @author
* @throws IOException
* @throws ServletException
*/
@RequestMapping(value = "deleteQuaisPerson")
public
@ResponseBody
Map<String, Object> deleteQuaisPerson(String numid,String addFlag,String did,HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String msg = StandardManage.OPERATE_SUCCESS;
Map<String, Object> result = Maps.newHashMap();

if (StringUtils.isEmpty(numid)) {
msg = StandardManage.OPERATE_FAIL;
}

Map<String, Object> map = new HashMap<String, Object>();
map.put("NUM_ID", numid);
try {
democracyRecommendService.deleteQuasiPerson(map);
} catch (Exception e) {
e.printStackTrace();
msg = StandardManage.OPERATE_FAIL;
}
result.put("result", msg);

return result;
}
/**
* 候选人删除
*
* @param request
* @param response
* @return
* @author
* @throws IOException
* @throws ServletException
*/
@RequestMapping(value = "deleteCandidate")
public
@ResponseBody
Map<String, Object> deleteCandidate (String numid,String addFlag,String did,HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String msg = StandardManage.OPERATE_SUCCESS;
Map<String, Object> result = Maps.newHashMap();

if (StringUtils.isEmpty(numid)) {
msg = StandardManage.OPERATE_FAIL;
}

Map<String, Object> map = new HashMap<String, Object>();
map.put("NUM_ID", numid);
try {
democracyRecommendService.deleteCandidate(map);
} catch (Exception e) {
e.printStackTrace();
msg = StandardManage.OPERATE_FAIL;
}
result.put("result", msg);

return result;
}

/**
* 民主推荐导出列表
*
* @param formBean
* @param request
* @param response
* @param redirectAttributes
* @throws IOException
* @author KLX
* @throws ParseException
*/
@RequestMapping(value = "candidateExport")
public String candidateExport(FormBean formBean,String PROCESS_ID,String hytjId,String voteFlag, HttpServletRequest request, HttpServletResponse response,
RedirectAttributes redirectAttributes) throws IOException, ParseException {
Map<String, Object> bean = Maps.newHashMap();

SimpleDateFormat format = new SimpleDateFormat("yyyy-M-dd");

bean.put("HYTJ_ID", hytjId);
bean.put("voteFlag", voteFlag);

List<Map<String, Object>> list = democracyRecommendService.gettCadreHytjHxmdList(bean);
int index = 0;
if (list != null && list.size()>0) {
for (Map<String, Object> map : list) {
if(map != null && map.size() >0){
index++;
map.put("INDEX", index);
//姓名
if(map.containsKey("XM")){
map.put("XM",map.get("XM").toString());
}else{
map.put("XM","");

}
//性别
if(map.containsKey("XB")){
map.put("XB",DictUtils.getDictLabel(map.get("XB").toString(), "XB", ""));
}else{
map.put("XB","");

}


//出生年月
if(map.containsKey("CSRQ")){
map.put("CSRQ",DateUtils.formatDate(format.parse(map.get("CSRQ").toString()), "yyyy-MM-dd"));
}else{
map.put("CSRQ","");

}
//政治面目
if(map.containsKey("ZZMM")){
map.put("ZZMM",DictUtils.getDictLabel(map.get("ZZMM").toString(), "ZZMM", ""));
}else{
map.put("ZZMM","");

}
//现任职务
if(map.containsKey("DUTIES")){
map.put("DUTIES",map.get("DUTIES"));
}else{
map.put("DUTIES","");

}
//任现职时间
if(map.containsKey("TENURE")){
map.put("TENURE",DateUtils.formatDate(format.parse(map.get("TENURE").toString()), "yyyy-MM-dd"));
}else{
map.put("TENURE","");

}
//任同职级时间
if(map.containsKey("LEVEL_TENURE")){
map.put("LEVEL_TENURE",DateUtils.formatDate(format.parse(map.get("LEVEL_TENURE").toString()), "yyyy-MM-dd"));
}else{
map.put("LEVEL_TENURE","");

}
}
}
}

String filename = "民主推荐候选名单" + "(" + DateUtils.getDate("yyyyMMdd") + ").xlsx";
try {

ExcelExport excelExport = new ExcelExport(request, filename, "MZTJCandidatesListExcel.xlsx");

excelExport.addData("list", list);

excelExport.export(response);

} catch (Exception e) {
e.printStackTrace();

}

return null;

}
/**
* 民主推荐查询
*
* @param formbean
* @param request
* @param response
* @param model
* @return
* @author wzq
*/
@RequestMapping(value = "addPersonList")
public String addPersonList(FormBean formbean, HttpServletRequest request, HttpServletResponse response, Model model) {

FormBeanUtils.preDeal(formbean, request);
Page<Map<String, Object>> page = democracyRecommendService.getDemocraticRecommendProcessPageList(new Page<Map<String, Object>>(request, response), formbean);
model.addAttribute("map", formbean);
model.addAttribute("page", page);
return "modules/cadre/selection/democracyRecommendAddPersonList";
}
/**
* 民主推荐,班子换届 一轮投票
*
* @param formbean
* @param request
* @param response
* @param model
* @return
* @author klx
*/
@RequestMapping(value = "roundOfVote")
public String roundOfVote(FormBean formbean, HttpServletRequest request, HttpServletResponse response, Model model) {

FormBeanUtils.preDeal(formbean, request);
Page<Map<String, Object>> page = democracyRecommendService.getDemocraticRecommendProcessPageList(new Page<Map<String, Object>>(request, response), formbean);
model.addAttribute("map", formbean);
model.addAttribute("page", page);
return "modules/cadre/selection/democracyRecommendRoundOfVoting";
}
/**
* 民主推荐,其他投票
*
* @param formbean
* @param request
* @param response
* @param model
* @return
* @author klx
*/
@RequestMapping(value = "otherOfVote")
public String otherOfVote(FormBean formbean, HttpServletRequest request, HttpServletResponse response, Model model) {

FormBeanUtils.preDeal(formbean, request);
Page<Map<String, Object>> page = democracyRecommendService.getDemocraticRecommendProcessPageList(new Page<Map<String, Object>>(request, response), formbean);
model.addAttribute("map", formbean);
model.addAttribute("page", page);
return "modules/cadre/selection/democracyRecommendOtherOfVoting";
}
/**
* 选择人员列表(正式党员,预备党员)民主推荐,选择人员
* @author Changjielai
* @param excIds 排除的人员id
* @param formbean
* @param request
* @param response
* @param model
* @param orgId
* @return klx
*/
@RequestMapping(value = "partyMzSelectList")
public String partyMzSelectList(String excIds,String numIds,String roleId,String mid,String pid,FormBean formbean, HttpServletRequest request, HttpServletResponse response, Model model) {

FormBeanUtils.preDeal(formbean, request);
Page<Map<String, Object>> page = null;

String twoVoteFlag = "";
Map<String, Object> bean = Maps.newHashMap();
if (StringUtils.isNotEmpty(pid)) {
bean.put("NUM_ID", pid);
bean.put("addFlag", "add");
}

bean = democracyRecommendService.getDemocracyRecommendProcessEnty(bean);

if(null != bean && null != bean.get("D_PRESERVE05")){
if( 6 > Integer.parseInt(bean.get("D_PRESERVE05").toString()) && 0!=Integer.parseInt(bean.get("D_PRESERVE05").toString())){
twoVoteFlag ="1";
}
else if( 6 <= Integer.parseInt(bean.get("D_PRESERVE05").toString())){
twoVoteFlag ="2";
}

else if( 0 == Integer.parseInt(bean.get("D_PRESERVE05").toString())){
twoVoteFlag ="2";
}

else{
twoVoteFlag ="1";
}

}else{
twoVoteFlag ="1";
}

if("1".equals(twoVoteFlag)){
//1轮
if(StringUtils.isNotEmpty(roleId)){
//取得未选择的拟任人的参数

formbean.getBean().put("roleId", roleId.split(","));
}

page = democracyRecommendService.candidateSelectPageList(new Page<Map<String, Object>>(request, response), formbean);
}
else if ("2".equals(twoVoteFlag)){
if(StringUtils.isNotEmpty(mid)){

Map<String, Object> idMap1 = Maps.newHashMap();
idMap1.put("NUM_ID", mid);
idMap1.put("oneRound", "oneRound");
String hytjId = "";
List<Map<String, Object>> idList1 = democracyRecommendService.getMztjHytjId(idMap1);
if(idList1 != null && idList1.size()>0){
hytjId = idList1.get(0).get("NUM_ID").toString();
}



Map<String, Object> obj = formbean.getBean();
obj.put("HYTJ_ID", hytjId);
obj.put("voteFlag", "1");
List<Map<String, Object>> democracyRecommendList = democracyRecommendService.gettCadreHytjHxmdList(obj);

String baseInfoId = "";
if(democracyRecommendList != null && democracyRecommendList.size()>0){
for(Map<String, Object> map:democracyRecommendList){
baseInfoId += map.get("PER_NUM_ID")+",";
}

}
if(!("").equals(baseInfoId)){
baseInfoId = baseInfoId.substring(0,baseInfoId.length()-1);
}
if(StringUtils.isNotEmpty(roleId)){
//取得未选择的拟任人的参数

formbean.getBean().put("roleId", roleId.split(","));
}
//取得未选择的拟任人的参数

formbean.getBean().put("BASE_INFO_ID", baseInfoId.split(","));
}

page = democracyRecommendService.candidateSelectPageList(new Page<Map<String, Object>>(request, response), formbean);
}

//2轮


FormBeanUtils.afterDeal(formbean, request);
model.addAttribute("map", formbean);
model.addAttribute("page", page);

model.addAttribute("roleId", roleId);
model.addAttribute("mid", mid);
model.addAttribute("pid", pid);

return "modules/common/empUtils/partyMzSelectList";
}
/**
* 选择人员列表(正式党员,预备党员)民主推荐,选择人员,参会名单
* @author Changjielai
* @param excIds 排除的人员id
* @param formbean
* @param request
* @param response
* @param model
* @param orgId
* @return klx
*/
@RequestMapping(value = "partyMzMettingSelectList")
public String partyMzMettingSelectList(String excIds,String numIds,String roleId,FormBean formbean, HttpServletRequest request, HttpServletResponse response, Model model) {
FormBeanUtils.preDeal(formbean, request);
/*formbean.getBean().put("TABLE", "T_CADRE_USER_INFO");
if(StringUtils.isNotEmpty(numIds)){
formbean.getBean().put("BASE_INFO_ID", numIds.split(","));
}
*/
Page<Map<String, Object>> page = democracyRecommendService.candidateSelectPageList(new Page<Map<String, Object>>(request, response), formbean);
FormBeanUtils.afterDeal(formbean, request);
model.addAttribute("map", formbean);
model.addAttribute("page", page);
model.addAttribute("roleId", roleId);
return "modules/common/empUtils/partyMzMettingSelectList";
}
/**
* 添加候选名单,返回的回显函数
*
* @param formbean
* @param request
* @param response
* @param model
* @return
* @author klx
*/
@RequestMapping(value = "partyMzAjaxSelectList")
public @ResponseBody Map<String, Object> partyMzAjaxSelectList(FormBean formbean, String numIds,String PROCESS_ID,String hytjId,String voteFlag,Model model,HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
String result = StandardManage.OPERATE_SUCCESS;
Map<String, Object> bean = Maps.newHashMap();
Map<String, Object> entity = Maps.newHashMap();
SimpleDateFormat format = new SimpleDateFormat("yyyy-M-dd");
//获取当前用户
User user = UserUtils.getUser();
String CREATE_BY="";
if(user != null && null != user.getLoginName()){
CREATE_BY=user.getLoginName();
}
List<Map<String, Object>> page = null;

try {
if(StringUtils.isNotEmpty(numIds)){
bean.put("BASE_INFO_ID", numIds.split(","));
}

page = democracyRecommendService.candidateSelectNoPageList(bean, formbean);
if(page != null && page.size() >0){
for(Map<String, Object> map : page){
Date day=new Date();

map.put("NUM_ID",EmpUtilsService.getBeanId());
//民主推荐下会议推荐ID
map.put("HYTJ_ID",hytjId);
//教职工号
map.put("QUASI_ID",map.get("ZGH"));

map.put("LS",voteFlag);


map.put("PRESERVE01",voteFlag);

map.put("CREATE_DATE",day);
map.put("CREATE_BY",CREATE_BY);

map.put("DEL_FLAG","0");


}

entity.put("list", page);
//將數據更新到數據庫
democracyRecommendService.inserttCadreHytjHxmdList(entity);

}
Map<String, Object> obj = Maps.newHashMap();
obj.put("HYTJ_ID", hytjId);
obj.put("voteFlag", voteFlag);

List<Map<String, Object>> listPage = democracyRecommendService.gettCadreHytjHxmdList(obj);
String empNameIdAllHid = "";
if(listPage != null && listPage.size()>0){
for(Map<String, Object> map : listPage){
empNameIdAllHid += map.get("PER_NUM_ID")+",";
//性别
if(map.containsKey("XB")){
map.put("XB",DictUtils.getDictLabel(map.get("XB").toString(), "XB", ""));
}else{
map.put("XB","");

}

if(map.containsKey("ZZMM") && map.get("ZZMM")!= null && !("").equals(map.get("ZZMM").toString().trim())){
map.put("ZZMM",DictUtils.getDictLabel(map.get("zzmm").toString(), "ZZMM", ""));

}else{
map.put("ZZMM", "");
}
//时间
if(map.containsKey("CSRQ")&& null!= map.get("CSRQ") && !("").equals(map.get("CSRQ").toString().trim())){
map.put("CSRQ",DateUtils.formatDate(format.parse(map.get("CSRQ").toString()), "yyyy-MM-dd"));
}else{
map.put("CSRQ","");

}
//时间
if(map.containsKey("DUTIES")&& null!= map.get("DUTIES") && !("").equals(map.get("DUTIES").toString().trim())){
}else{
map.put("DUTIES","");

}
//zhiwu
if(map.containsKey("TENURE")&& null!= map.get("TENURE") && !("").equals(map.get("TENURE").toString().trim())){
}else{
map.put("TENURE","");

}
//时间
if(map.containsKey("LEVEL_TENURE")&& null!= map.get("LEVEL_TENURE") && !("").equals(map.get("LEVEL_TENURE").toString().trim())){
}else{
map.put("LEVEL_TENURE","");

}
}


bean.put("list", listPage);

}
if(!("").equals(empNameIdAllHid)){
empNameIdAllHid = empNameIdAllHid.substring(0,empNameIdAllHid.length()-1);
}
bean.put("result", result);

bean.put("empNameIdAllHid", empNameIdAllHid);

} catch (Exception e) {
e.printStackTrace();
result = StandardManage.OPERATE_FAIL;
bean.put("result", result);
}
return bean;
}
/**
* 导入刷新候选名单数据,返回的回显函数
*
* @param formbean
* @param request
* @param response
* @param model
* @return
* @author klx
*/
@RequestMapping(value = "MzAjaxSelectPersonList")
public @ResponseBody Map<String, Object> MzAjaxSelectPersonList(FormBean formbean, String numIds,String PROCESS_ID,String addFlag,String hytjId,String voteFlag,Model model,HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
String result = StandardManage.OPERATE_SUCCESS;
Map<String, Object> bean = formbean.getBean();
bean.put("HYTJ_ID", hytjId);
bean.put("voteFlag", voteFlag);
SimpleDateFormat format = new SimpleDateFormat("yyyy-M-dd");

try {

List<Map<String, Object>> listPage = democracyRecommendService.gettCadreHytjHxmdList(bean);
if(listPage != null && listPage.size()>0){
for(Map<String, Object> map : listPage){
//性别
if(map.containsKey("XB")){
map.put("XB",DictUtils.getDictLabel(map.get("XB").toString(), "XB", ""));
}else{
map.put("XB","");

}

if(map.containsKey("ZZMM") && map.get("ZZMM")!= null && !("").equals(map.get("ZZMM").toString().trim())){
map.put("ZZMM",DictUtils.getDictLabel(map.get("zzmm").toString(), "ZZMM", ""));

}else{
map.put("ZZMM", "");
}
//时间
if(map.containsKey("CSRQ")&& null!= map.get("CSRQ") && !("").equals(map.get("CSRQ").toString().trim())){
map.put("CSRQ",DateUtils.formatDate(format.parse(map.get("CSRQ").toString()), "yyyy-MM-dd"));
}else{
map.put("CSRQ","");

}
//时间
if(map.containsKey("DUTIES")&& null!= map.get("DUTIES") && !("").equals(map.get("DUTIES").toString().trim())){
}else{
map.put("DUTIES","");

}
//zhiwu
if(map.containsKey("TENURE")&& null!= map.get("TENURE") && !("").equals(map.get("TENURE").toString().trim())){
}else{
map.put("TENURE","");

}
//时间
if(map.containsKey("LEVEL_TENURE")&& null!= map.get("LEVEL_TENURE") && !("").equals(map.get("LEVEL_TENURE").toString().trim())){
}else{
map.put("LEVEL_TENURE","");

}
}



}
bean.put("list", listPage);
bean.put("result", result);

} catch (Exception e) {
e.printStackTrace();
result = StandardManage.OPERATE_FAIL;
bean.put("result", result);
}
return bean;
}
/* *//**
* 解析表头
*
* @author Changjielai
* @param exportInfo
* @return
*//*
private static Map<String, Object> getExportInfo(String exportInfo) {
Map<String, Object> exportMap = Maps.newHashMap();
if (com.thinkgem.jeesite.common.utils.StringUtils.isNotEmpty(exportInfo)) {
JSONArray exportInfoArray = JSONArray.fromObject(exportInfo);
List<String> headerList = Lists.newArrayList();
List<String> codeList = Lists.newArrayList();
String[] columnName = new String[exportInfoArray.size()];
for (int i = 0; i < exportInfoArray.size(); i++) {
JSONObject jsonObject = exportInfoArray.getJSONObject(i);
columnName[i] = jsonObject.getString("column");
headerList.add(jsonObject.getString("name"));
codeList.add(jsonObject.getString("code"));
}
exportMap.put("headerList", headerList);
exportMap.put("codeList", codeList);
exportMap.put("columnName", columnName);
}
return exportMap;
}*/

//导出
@RequestMapping(value = "import", method = RequestMethod.POST)
@ResponseBody
public Object importFile(MultipartFile file,String paramID, String voteFlag,RedirectAttributes redirectAttributes) {

Map<String, Object> result = new HashMap<>();
Date day=new Date();
boolean falg = true;
//获取当前用户
User user = UserUtils.getUser();
String CREATE_BY="";
if(user != null && null != user.getLoginName()){
CREATE_BY=user.getLoginName();
}
try {

List<String> list = new ArrayList<String>();

int successNum = 0;
int failureNum = 0;

StringBuilder failureMsg = new StringBuilder();

StringBuilder message = new StringBuilder("<br>");

ImportExcel ei = new ImportExcel(file, 1, 0);

int len = ei.getLastDataRowNum();

for (int i = 2; i < len; i++) {
Row row = ei.getRow(i);


Object cell0 = getCellValue(row, 0).toString().trim();
Object cell1 = getCellValue(row, 1).toString().trim();


// 判断是否全部为空
if (StringUtils.isEmpty(cell0.toString())&&StringUtils.isEmpty(cell1.toString())) {
continue;
}


// 验证
StringBuilder msg = new StringBuilder();

if (StringUtils.isEmpty(cell0.toString())) {
msg.append("教职工号缺失,");
} else if (cell0.toString().length() > 30) {
msg.append("教职工号输入过长,");
}


if (StringUtils.isNotEmpty(cell0.toString())) {

if (list.contains(cell0.toString())) {
msg.append("教职工号重复,");
} else {

// 判断数据库是否有相同拟任人数据
Map<String, Object> searchParams = new HashMap<>();

searchParams.put("ZGH", cell0);
searchParams.put("HYTJ_ID", paramID);
List<Map<String, Object>> remindList = democracyRecommendService.gettCadreHytjHxmdList(searchParams);


if (CollectionUtils.isNotEmpty(remindList)) {
falg = false;
msg.append("教职工号重复,");
} else {
list.add(cell0.toString());
}
//判断人事表是否有该编号的人
List<Map<String, Object>> cadre = democracyRecommendService.candidateSelectListByOneZGH(searchParams);
if(cadre == null || cadre.size() <=0){
falg = false;
msg.append("人员在人事系统中不存在");
}
if(falg){
List<Map<String, Object>> objList = new ArrayList<Map<String,Object>>();

Map<String, Object> m = Maps.newHashMap();
Map<String, Object> entity = Maps.newHashMap();

m.put("NUM_ID",EmpUtilsService.getBeanId());
//民主推荐下会议推荐ID
m.put("HYTJ_ID",paramID);
//教职工号
m.put("QUASI_ID",cadre.get(0).get("ZGH"));

m.put("LS",voteFlag);


m.put("PRESERVE01",voteFlag);

m.put("CREATE_DATE",day);
m.put("CREATE_BY",CREATE_BY);

m.put("DEL_FLAG","0");
objList.add(m);
entity.put("list", objList);
democracyRecommendService.inserttCadreHytjHxmdList(entity);
successNum++;
}
falg = true;
}

}

if (msg.length() > 0) {
msg.insert(0, "第" + (i + 1) + "行,");

msg.deleteCharAt(msg.length() - 1);
msg.append(";<br>");
message.append(msg);
failureNum++;
continue;
}


}

if (failureNum > 0) {
failureMsg.insert(0, ",失败 " + failureNum + " 条记录。");
}

result.put("error_code", 0);
result.put("message", "已成功导入 " + successNum + " 条记录" + failureMsg + message);
return result;
// addMessage(redirectAttributes, "已成功导入 " + successNum + " 条记录" + failureMsg + message);
} catch (Exception e) {
result.put("error_code", 10000);
result.put("message", "导入失败!失败信息:" + e.getMessage());
return result;
// addMessage(redirectAttributes, "导入失败!失败信息:" + e.getMessage());
}
}

@RequestMapping(value = "reload", method = RequestMethod.POST)
public String reload(HttpServletRequest request, HttpServletResponse response,
RedirectAttributes redirectAttributes) throws Exception {
return "redirect:" + Global.getAdminPath() + "/selection/democracyRecommend/?repage";
}
@RequestMapping(value = "import/template")
public String importFileTemplate(HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes)
throws Exception {
democracyRecommendService.exporTemplate(request, response);

return null;
}
/**
* 保存投票方案
*
* @param formbean
* @param request
* @param response
* @return
* @author KLX
* @throws IOExceptionE
*/
@RequestMapping(value = "insertTCadreMztjHytj")
public @ResponseBody Map<String, Object> insertTCadreMztjHytj(FormBean formbean, Model model,
HttpServletRequest request, HttpServletResponse response,
RedirectAttributes redirectAttributes) throws IOException {
String result = StandardManage.OPERATE_SUCCESS;
Map<String, Object> map = Maps.newHashMap();
Date day=new Date();
String voteFlag = request.getParameter("voteFlagHid");
String hytjid = request.getParameter("hytjIdHid");
//获取当前用户
User user = UserUtils.getUser();
String UPDATE_BY="";
if(user != null && null != user.getLoginName()){
UPDATE_BY=user.getLoginName();
}
Map<String, Object> bean = formbean.getBean();
if(bean != null ){
bean.put("UPDATE_BY", UPDATE_BY);
bean.put("UPDATE_DATE", day);
bean.put("NUM_ID", hytjid);

if(null != voteFlag && "2".equals(voteFlag)){
bean.put("voteFlag", "2");
}else{
bean.put("voteFlag", "1");
}

}

try {
democracyRecommendService.updateTCadreMztjHytj(FormBeanUtils.parse(bean));
} catch (Exception e) {
e.printStackTrace();
result = StandardManage.OPERATE_FAIL;

}
map.put("result", result);
return map;
}
//生成二维码
@RequestMapping(value = "exportQR")
public void exportImg(FormBean formBean,String isCanVoteFlag,String PROCESS_ID,String HYTJ_NUM_ID,String voteFlag,String transitionType, HttpServletRequest request, HttpServletResponse response) throws ParseException {



ZipOutputStream zos = null;
try {

Map<String, Object> searchParams = Maps.newHashMap();
searchParams.put("NUM_ID", PROCESS_ID);
Map<String, Object> result = democracyRecommendService.getDemocracyRecommendProcessEnty(searchParams);
String fileName = "";
String year = "";
String name = "";

if(result != null ){
if(result.containsKey("PROCESS_NAME") && null != result.get("PROCESS_NAME")){
name = result.get("PROCESS_NAME").toString();
}
if(result.containsKey("PROCESS_YEAR") && null != result.get("PROCESS_YEAR")){
year = result.get("PROCESS_YEAR").toString();

}
fileName = name +"-民主推荐投票";
result.put("fileName", fileName);
}


response.setContentType("application/octet-stream");// 指明response的返回对象是文件流
response.setHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode(fileName, "UTF-8") + ".zip");// 设置在下载框默认显示的文件名
zos = new ZipOutputStream(response.getOutputStream());
String url = CommonUtil.getServerUrl(request);
String code = "";

if(("0").equals(transitionType)){
//班子换届页面
code = url + "/mobile/selection/democracyRecommendRoundOfVoting/list?PROCESS_ID="+PROCESS_ID+"&HYTJ_NUM_ID="+HYTJ_NUM_ID+"&voteFlag="+voteFlag+"&isCanVoteFlag="+isCanVoteFlag;
}else{
//其他投票页面
code = url + "/mobile/selection/democracyRecommendOtherOfVoting/list?PROCESS_ID="+PROCESS_ID+"&HYTJ_NUM_ID="+HYTJ_NUM_ID+"&voteFlag="+voteFlag+"&isCanVoteFlag="+isCanVoteFlag;

}

// 生成二维码
BufferedImage image = QRCodeUtils.createQRCode(code);
image = QRCodeUtils.meetOtherVoit(image, result);
zos.putNextEntry(new ZipEntry(fileName + ".png"));// 命名
ImageIO.write(image, "png",zos);

zos.flush();
zos.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (zos != null) {
try {
zos.flush();
zos.close();
} catch (IOException e) {
e.printStackTrace();
}

}

}

}
/**
* 结束投票,更新爷们民主推荐下谈话推荐投票数据,t_cadre_mztj_vote
*
* @param formbean
* @param request
* @param response
* @return
* @author KLX
* @throws IOException
*/
@RequestMapping(value = "showTCadreMztjVote")
public @ResponseBody Map<String, Object> showTCadreMztjVote(FormBean formbean, Model model,String HYTJ_ID,String voteFlag,
HttpServletRequest request, HttpServletResponse response,
RedirectAttributes redirectAttributes) throws IOException {
String result = StandardManage.OPERATE_SUCCESS;
//取得1轮实投票数
Map<String, Object> voteSumBean = Maps.newHashMap();

voteSumBean.put("HYTJ_NUM_ID", HYTJ_ID);
voteSumBean.put("voteFlag", voteFlag);
//取得一轮投票的总票数
Map<String, Object> voteSumMap = democracyRecommendService.getvoteSum(voteSumBean);
int voteSum = 0;
if( null != voteSumMap && voteSumMap.get("voteSum") != null){
voteSum = Integer.parseInt(voteSumMap.get("voteSum").toString());
}

/* //更新会议推荐的实投票数
Map<String, Object> voteBean = Maps.newHashMap();

voteBean.put("NUM_ID", HYTJ_ID);

voteBean.put("HYTJ_ACTUAL_NUM", (voteSum==0?"0":voteSum));
voteBean.put("voteFlag", voteFlag);
democracyRecommendService.updateTCadreMztjHytj(voteBean);*/

Map<String, Object> map = Maps.newHashMap();
List<Map<String, Object>> list = null;

map.put("HYTJ_ID", HYTJ_ID);
map.put("voteFlag", voteFlag);

try {
if(null != democracyRecommendService.gettCadreHytjVotelist(map) && democracyRecommendService.gettCadreHytjVotelist(map).size() >0){
list = democracyRecommendService.gettCadreHytjVotelist(map);

}



} catch (Exception e) {
e.printStackTrace();
result = StandardManage.OPERATE_FAIL;

}
map.put("result", result);
map.put("voteSum", voteSum);
map.put("list", list);
return map;
}
/**
* 二轮投票,把一轮投票的候选名单更新到二轮投票的候选名单中
*
* @param formbean
* @param request
* @param response
* @return
* @author KLX
* @throws IOException
*/
@RequestMapping(value = "updateHytjHxmdAjax")
public @ResponseBody Map<String, Object> updateHytjHxmdAjax(FormBean formbean, Model model,String HYTJ_ID,String voteFlag,
String HYTJ_NUM_ID,String did,HttpServletRequest request, HttpServletResponse response,
RedirectAttributes redirectAttributes) throws IOException {
String result = StandardManage.OPERATE_SUCCESS;
//取得会议推荐信息
Map<String, Object> hytjmap = Maps.newHashMap();
hytjmap.put("NUM_ID", HYTJ_NUM_ID);
Map<String, Object> hytjInfo = democracyRecommendService.getMztjHytjInfo(hytjmap);
String id = EmpUtilsService.getBeanId();
if(hytjInfo != null){
Map<String, Object> hytjObj = Maps.newHashMap();
hytjObj.put("NUM_ID", id);
hytjObj.put("DEMOCRATIC_ID",hytjInfo.get("DEMOCRATIC_ID"));
hytjObj.put("HYTJ_STATUS", hytjInfo.get("HYTJ_STATUS"));
hytjObj.put("HANDLE_ID", hytjInfo.get("HANDLE_ID"));
hytjObj.put("MOTION_COMPLETE", hytjInfo.get("MOTION_COMPLETE"));
hytjObj.put("HYTJ_RANGE", hytjInfo.get("HYTJ_RANGE"));
hytjObj.put("HYTJ_NAMELIST", hytjInfo.get("HYTJ_NAMELIST"));
hytjObj.put("SHOULD_NUM", "0");
hytjObj.put("ACTUAL_NUM", "0");
hytjObj.put("CREATE_DATE", hytjInfo.get("CREATE_DATE"));
hytjObj.put("CREATE_BY", hytjInfo.get("CREATE_BY"));
hytjObj.put("PRESERVE03", hytjInfo.get("PRESERVE03"));

hytjObj.put("DEL_FLAG", hytjInfo.get("DEL_FLAG"));
hytjObj.put("TPFS", hytjInfo.get("TPFS"));
//二轮会议推荐的标识
hytjObj.put("PRESERVE04", "2");
democracyRecommendService.insertMztjHytj(hytjObj);
}


Map<String, Object> map = Maps.newHashMap();

//获取当前用户
/* User user = UserUtils.getUser();
String CREATE_BY="";
if(user != null && null != user.getLoginName()){
CREATE_BY=user.getLoginName();
}*/
try {
/* Map<String, Object> obj = formbean.getBean();
obj.put("HYTJ_ID", HYTJ_ID);
obj.put("voteFlag", "1");
List<Map<String, Object>> hxmdList = democracyRecommendService.gettCadreHytjHxmdList(obj);

Map<String, Object> listMap = formbean.getBean();
if(null != hxmdList && hxmdList.size()>0){
for(Map<String, Object> m:hxmdList){
Date day=new Date();
if(m.containsKey("PRESERVE01") && null != m.get("PRESERVE01")){
m.put("PRESERVE01", "2");
}else{
m.put("PRESERVE01", "2");
}
if(m.containsKey("NUM_ID") && null != m.get("NUM_ID")){
m.put("NUM_ID", EmpUtilsService.getBeanId());
}else{
m.put("NUM_ID",EmpUtilsService.getBeanId());
}
m.put("CREATE_BY",CREATE_BY);
m.put("CREATE_DATE",day);
m.put("LS","2");
m.put("HYTJ_ID",id);



}
listMap.put("list", hxmdList);
democracyRecommendService.inserttCadreHytjHxmdList(listMap);
}*/

Map<String, Object> idMap1 = Maps.newHashMap();
idMap1.put("NUM_ID", did);
idMap1.put("oneRound", "oneRound");

Map<String, Object> idMap2 = Maps.newHashMap();
idMap2.put("NUM_ID", did);
idMap2.put("secondRound", "secondRound");
List<Map<String, Object>> idList1 = democracyRecommendService.getMztjHytjId(idMap1);
List<Map<String, Object>> idList2 = democracyRecommendService.getMztjHytjId(idMap2);
String hytjId1 ="";
String hytjId2 ="";

if(idList1 != null && idList1.size()>0){
hytjId1 = idList1.get(0).get("NUM_ID").toString();
}
if(idList2 != null && idList2.size()>0){
hytjId2 = idList2.get(0).get("NUM_ID").toString();
}

map.put("hytjId1", hytjId1);
map.put("hytjId2", hytjId2);
map.put("result", result);
} catch (Exception e) {
e.printStackTrace();
map.put("hytjId1", "");
map.put("hytjId2", "");
result = StandardManage.OPERATE_FAIL;
map.put("result", result);

}
return map;
}
/**
* 完成投票方案
*
* @param formbean
* @param request
* @param response
* @return
* @author KLX
* @throws IOException
*/
@RequestMapping(value = "finishedCadreMztjHytj")
public @ResponseBody Map<String, Object> finishedCadreMztjHytj(FormBean formbean, Model model,String voteFlag,String hytjid,
String D_NUM_ID,String THTJ_NUM_ID,HttpServletRequest request, HttpServletResponse response,
RedirectAttributes redirectAttributes) throws IOException {

String MOTION_COMPLETE_NEW = request
.getParameter("MOTION_COMPLETE_NEW");
String HANDLE_ID = request.getParameter("HANDLE_ID");
String empName = request.getParameter("empNameHid");
String zgh ="";
//根据id查出教职工号
Map<String, Object> zghMap = Maps.newHashMap();
zghMap.put("NUM_ID", HANDLE_ID);
List<Map<String, Object>> zghList = democracyRecommendService.getRsPartyZghById(zghMap);
if(zghList != null && zghList.size() >0){
zgh = zghList.get(0).get("ZGH").toString();
}

String result = StandardManage.OPERATE_SUCCESS;
Map<String, Object> map = Maps.newHashMap();
Date day=new Date();

//获取当前用户
User user = UserUtils.getUser();
String UPDATE_BY="";
if(user != null && null != user.getLoginName()){
UPDATE_BY=user.getLoginName();
}
Map<String, Object> bean = formbean.getBean();




Map<String, Object> updaeMap = Maps.newHashMap();

String PRESERVE04Str = "";
try {
if(null != bean){

//将会议投票的数据更新到谈话推荐
Map<String, Object> thtjMap = Maps.newHashMap();
Map<String, Object> talkMap = Maps.newHashMap();
List<Map<String, Object>> list= new ArrayList<Map<String,Object>>();

List<Map<String, Object>> hytjVotelist = null;

thtjMap.put("HYTJ_ID", hytjid);
thtjMap.put("voteFlag", voteFlag);
if(null != democracyRecommendService.gettCadreHytjVotelist(thtjMap) && democracyRecommendService.gettCadreHytjVotelist(thtjMap).size() >0){
hytjVotelist = democracyRecommendService.gettCadreHytjVotelist(thtjMap);
for(Map<String, Object> m : hytjVotelist){
Map<String, Object> talkParamterMap = Maps.newHashMap();
talkParamterMap.put("NUM_ID",EmpUtilsService.getBeanId());
talkParamterMap.put("DEL_FLAG","0");
talkParamterMap.put("QUASI_ID",m.get("QUASI_ID"));
talkParamterMap.put("POST_ID",m.get("POST_ID"));
talkParamterMap.put("EFFECTIVE_NUM","");
talkParamterMap.put("GET_NUM","");
talkParamterMap.put("THTJ_ID",THTJ_NUM_ID);
talkParamterMap.put("LS",m.get("LS"));
talkParamterMap.put("CREATE_BY",UPDATE_BY );
talkParamterMap.put("CREATE_DATE", day);
talkParamterMap.put("UPDATE_BY", UPDATE_BY);
talkParamterMap.put("UPDATE_DATE", day);
list.add(talkParamterMap);

}
talkMap.put("list", list);
democracyRecommendService.insertLisMztjVoteAddPerson(FormBeanUtils.parse(talkMap));
}


//更新父节点里的子节点状态的状态
if(null != bean.get("DD_PRESERVE04") && bean.get("DD_PRESERVE04").toString().length() >0){
PRESERVE04Str = bean.get("DD_PRESERVE04").toString();
if(PRESERVE04Str.length() != (PRESERVE04Str.indexOf("-")+1)){

PRESERVE04Str = PRESERVE04Str.substring((PRESERVE04Str.indexOf("-")+1)) ;

}else{
PRESERVE04Str ="";
}

}

updaeMap.put("NUM_ID", D_NUM_ID);

updaeMap.put("UPDATE_BY", UPDATE_BY);
updaeMap.put("UPDATE_DATE", day);

//更新子节点的字符拼接
updaeMap.put("PRESERVE04", PRESERVE04Str);

democracyRecommendService.updateDemocraticRecommend(updaeMap);

}
if(null != voteFlag && "2".equals(voteFlag)){
if(bean != null ){
bean.put("UPDATE_BY", UPDATE_BY);
bean.put("UPDATE_DATE", day);
bean.put("NUM_ID", hytjid);
bean.put("HYTJ_STATUS", "1");
bean.put("MOTION_COMPLETE", MOTION_COMPLETE_NEW);
bean.put("HANDLE_ID", zgh);
bean.put("PRESERVE05", empName);
if(null != voteFlag && "2".equals(voteFlag)){
bean.put("voteFlag", "2");
}else{
bean.put("voteFlag", "1");
}

}
//更新二次投票的数据
democracyRecommendService.updateTCadreMztjHytj(FormBeanUtils.parse(bean));

////更新第一次投票的数据
Map<String, Object> m = Maps.newHashMap();
m.put("HYTJ_STATUS", "1");
m.put("D_NUM_ID", D_NUM_ID);
m.put("voteFlag", "1");
m.put("MOTION_COMPLETE", MOTION_COMPLETE_NEW);
m.put("HANDLE_ID", HANDLE_ID);
m.put("PRESERVE05", empName);

democracyRecommendService.updateTCadreMztjHytj(FormBeanUtils.parse(m));

}
if(null != voteFlag && "1".equals(voteFlag)){
if(bean != null ){
bean.put("UPDATE_BY", UPDATE_BY);
bean.put("UPDATE_DATE", day);
bean.put("NUM_ID", hytjid);
bean.put("HYTJ_STATUS", "1");
bean.put("MOTION_COMPLETE", MOTION_COMPLETE_NEW);
bean.put("HANDLE_ID", HANDLE_ID);
bean.put("PRESERVE05", empName);

if(null != voteFlag && "2".equals(voteFlag)){
bean.put("voteFlag", "2");
}else{
bean.put("voteFlag", "1");
}

}
democracyRecommendService.updateTCadreMztjHytj(FormBeanUtils.parse(bean));
}




} catch (Exception e) {
e.printStackTrace();
result = StandardManage.OPERATE_FAIL;

}
map.put("result", result);
return map;
}
/**
* 更新民主推荐子节点的阶段标识方案
*
* @param formbean
* @param request
* @param response
* @return
* @author KLX
* @throws IOException
*/
@RequestMapping(value = "updateDemocraticRecommend")
public @ResponseBody Map<String, Object> updateDemocraticRecommend(FormBean formbean, Model model,String voteFlag,String D_PRESERVE05,
String D_PRESERVE04,String D_NUM_ID,HttpServletRequest request, HttpServletResponse response,
RedirectAttributes redirectAttributes) throws IOException {


String result = StandardManage.OPERATE_SUCCESS;
Map<String, Object> map = Maps.newHashMap();

Map<String, Object> bean = formbean.getBean();

try {

if(bean != null ){
//民主推荐的主键
bean.put("NUM_ID", D_NUM_ID);
//民主推荐下各阶段的标识
bean.put("PRESERVE05", D_PRESERVE05);
//更新二次投票的数据
democracyRecommendService.updateDemocraticRecommend(FormBeanUtils.parse(bean));

}


} catch (Exception e) {
e.printStackTrace();
result = StandardManage.OPERATE_FAIL;

}
map.put("result", result);
return map;
}
/**
* 初始化会议和民主c测评数据
*
* @param formbean
* @param request
* @param response
* @return
* @author KLX
* @throws IOException
*/
@RequestMapping(value = "meetingAndmzcpShow")
public @ResponseBody Map<String, Object> meetingAndmzcpShow(FormBean formbean, Model model,String pid,String twoVoteFlag,
String D_NUM_ID,HttpServletRequest request, HttpServletResponse response,
RedirectAttributes redirectAttributes) throws IOException {

// 获取当前用户
User user = UserUtils.getUser();
String CREATE_BY = "";
if (user != null && null != user.getLoginName()) {
CREATE_BY = user.getLoginName();
}
Date day = new Date();

String result = StandardManage.OPERATE_SUCCESS;
Map<String, Object> map = Maps.newHashMap();

Map<String, Object> idMap1 = Maps.newHashMap();
idMap1.put("NUM_ID", D_NUM_ID);
idMap1.put("oneRound", "oneRound");
Map<String, Object> idMap2 = Maps.newHashMap();
idMap2.put("NUM_ID", D_NUM_ID);
idMap2.put("secondRound", "secondRound");
List<Map<String, Object>> idList1 = democracyRecommendService.getMztjHytjId(idMap1);
List<Map<String, Object>> idList2 = democracyRecommendService.getMztjHytjId(idMap2);
String hytjId1 ="";
String hytjId2 ="";
String hytjId = "";
String voteFlag ="";
if(idList1 != null && idList1.size()>0){
hytjId1 = idList1.get(0).get("NUM_ID").toString();
}
if(idList2 != null && idList2.size()>0){
hytjId2 = idList2.get(0).get("NUM_ID").toString();
}
if(null != twoVoteFlag && !("").equals(twoVoteFlag)){
if("1".equals(twoVoteFlag)){
hytjId = hytjId1;
voteFlag ="1";
}else if("2".equals(twoVoteFlag)){
hytjId = hytjId2;
voteFlag ="1";
}
}else{
hytjId = hytjId1;
voteFlag ="1";
}

Map<String, Object> bean = Maps.newHashMap();
bean.put("PROCESS_ID", pid);

// 现任任免表职务
List<Map<String, Object>> selectionList = democracyRecommendService
.getSelectionList(bean, null);

try {
if(selectionList != null && selectionList.size() >0 ){
for(Map<String, Object> m:selectionList){
Map<String, Object> selectionMap = Maps.newHashMap();

selectionMap.put("NUM_ID", EmpUtilsService.getBeanId());
selectionMap.put("THTJ_ID", hytjId);
selectionMap.put("BASE_INFO_ID",m.get("TMRP_NUM_ID") );
selectionMap.put("SELECTION_ID",m.get("TCS_NUM_ID"));
selectionMap.put("ZHPJ_DUTIES", m.get("DUTIES"));
selectionMap.put("DEL_FLAG", "0");

//selectionMap.put("PRESERVE01", "");
selectionMap.put("CREATE_BY", CREATE_BY);
selectionMap.put("CREATE_DATE",day );
selectionMap.put("UPDATE_BY", CREATE_BY);
selectionMap.put("UPDATE_DATE", day);

democracyRecommendService.insertZhpj(selectionMap);

}
}
} catch (Exception e) {
e.printStackTrace();
result = StandardManage.OPERATE_FAIL;

}
map.put("result", result);
return map;
}
/**
* 民主推荐,添加人员页面
*
* @param formbean
* @param request
* @param response
* @param model
* @return
* @author klx
*/
@RequestMapping(value = "addDemocraticRecommendationPersonForm")
public String addDemocraticRecommendationPersonForm(FormBean formbean,String processId,String thtjNumId,String twoVoteFlag, HttpServletRequest request, HttpServletResponse response, Model model) {

FormBeanUtils.preDeal(formbean, request);
Map<String, Object> bean = Maps.newHashMap();
bean.put("PROCESS_ID", processId);
bean.put("thtjNumId", thtjNumId);
bean.put("twoVoteFlag", twoVoteFlag);

//职务集合
List<Dict> electivePostList = democracyRecommendService.getelectivePostDictListByProcessId(bean);

model.addAttribute("postList", electivePostList);
model.addAttribute("bean", bean);
model.addAttribute("map", formbean);
return "modules/cadre/selection/addDemocraticRecommendationPersonForm";
}

/**
* 民主推荐保存
*
* @param formbean
* @param request
* @param response
* @return
* @author klx
*/
@RequestMapping(value = "insertLisMztjVoteAddPerson")
public
@ResponseBody
String saveTalkAddPerson(FormBean formbean, Model model,RedirectAttributes redirectAttributes) {
String result = StandardManage.OPERATE_SUCCESS;
Map<String, Object> bean = formbean.getBean();
Date day=new Date();

//获取当前用户
User user = UserUtils.getUser();
String UPDATE_BY="";
if(user != null && null != user.getLoginName()){
UPDATE_BY=user.getLoginName();
}
List<Map<String, Object>> list= new ArrayList<Map<String,Object>>();
try {

if(bean != null ){
String zgh ="";
//根据id查出教职工号
Map<String, Object> zghMap = Maps.newHashMap();
zghMap.put("NUM_ID", bean.get("QUASI_ID"));
List<Map<String, Object>> zghList = democracyRecommendService.getRsPartyZghById(zghMap);
if(zghList != null && zghList.size() >0){
zgh = zghList.get(0).get("ZGH").toString();
}

//查询库里是否已有拟任人
Map<String, Object> map = Maps.newHashMap();
map.put("QUASI_ID", zgh);
map.put("POST_ID", bean.get("POST_ID"));
map.put("NUM_ID", bean.get("NUM_ID"));
List<Map<String, Object>> mztjVotelist = democracyRecommendService.getmztjVoteList(map);
if(mztjVotelist != null && mztjVotelist.size()>0){

result ="该人员已有相同的职务";
}
else{
bean.put("NUM_ID",EmpUtilsService.getBeanId());
bean.put("DEL_FLAG","0");
bean.put("QUASI_ID",zgh);
bean.put("POST_ID",bean.get("POST_ID"));
bean.put("EFFECTIVE_NUM",bean.get("EFFECTIVE_NUM"));
bean.put("GET_NUM",bean.get("GET_NUM"));
bean.put("THTJ_ID",bean.get("thtjNumId"));
bean.put("LS",bean.get("LS"));
bean.put("CREATE_BY",UPDATE_BY );
bean.put("CREATE_DATE", day);
bean.put("UPDATE_BY", UPDATE_BY);
bean.put("UPDATE_DATE", day);
list.add(bean);
bean.put("list", list);

democracyRecommendService.insertLisMztjVoteAddPerson(FormBeanUtils.parse(bean));

Map<String, Object> postMap = Maps.newHashMap();
postMap.put("POST_ID",bean.get("POST_ID"));
postMap.put("EFFECTIVE_NUM",bean.get("EFFECTIVE_NUM"));
postMap.put("THTJ_ID",bean.get("thtjNumId"));

//更新通知我的有效票数
democracyRecommendService.updateMztjVoteAddPerson(FormBeanUtils.parse(postMap));
}


}
} catch (Exception e) {
e.printStackTrace();
result = StandardManage.OPERATE_FAIL;
}
return result;
}
/**
* 完成投票谈话推荐
*
* @param formbean
* @param request
* @param response
* @return
* @author KLX
* @throws IOException
*/
@RequestMapping(value = "finishedTalk")
public @ResponseBody Map<String, Object> finishedTalk(FormBean formbean, Model model,String numid,String THTJ_NUM_ID,String twoVoteFlag,String D_NUM_ID,
HttpServletRequest request, HttpServletResponse response,
RedirectAttributes redirectAttributes) throws IOException {

String MOTION_COMPLETE_NEW = request
.getParameter("MOTION_COMPLETE_NEW");
String HANDLE_ID = request.getParameter("HANDLE_ID");
String empName = request.getParameter("empName");
String zgh ="";
//根据id查出教职工号
Map<String, Object> zghMap = Maps.newHashMap();
zghMap.put("NUM_ID", HANDLE_ID);
List<Map<String, Object>> zghList = democracyRecommendService.getRsPartyZghById(zghMap);
if(zghList != null && zghList.size() >0){
zgh = zghList.get(0).get("ZGH").toString();
}

//取得谈话推荐的集合数据
Map<String, Object> thtjMap = Maps.newHashMap();
List<Map<String, Object>> thtjVotelist = null;

thtjMap.put("NUM_ID", numid);
thtjMap.put("LS", twoVoteFlag);
if(null != democracyRecommendService.getmztjVoteList(thtjMap) && democracyRecommendService.getmztjVoteList(thtjMap).size() >0){
thtjVotelist = democracyRecommendService.getmztjVoteList(thtjMap);

}

String result = StandardManage.OPERATE_SUCCESS;
Map<String, Object> mapEntity = Maps.newHashMap();
Map<String, Object> map = Maps.newHashMap();
List<Map<String, Object>> mapList = new ArrayList<Map<String,Object>>();

Date day=new Date();

//获取当前用户
User user = UserUtils.getUser();
String UPDATE_BY="";
if(user != null && null != user.getLoginName()){
UPDATE_BY=user.getLoginName();
}
Map<String, Object> bean = formbean.getBean();
String PRESERVE04Str = "";
Map<String, Object> updaeMap = Maps.newHashMap();
try {

if(bean != null ){
bean.put("UPDATE_BY", UPDATE_BY);
bean.put("UPDATE_DATE", day);

bean.put("HYTJ_STATUS", "1");
bean.put("MOTION_COMPLETE", MOTION_COMPLETE_NEW);
bean.put("HANDLE_ID", zgh);
bean.put("NUM_ID", THTJ_NUM_ID);
bean.put("PRESERVE05", empName);

//更新谈话推荐
democracyRecommendService.updateMztjThtjInfo(FormBeanUtils.parse(bean));

if(thtjVotelist != null && thtjVotelist.size()>0){
for(Map<String, Object> m:thtjVotelist){
Map<String, Object> mapMap = Maps.newHashMap();

mapMap.put("NUM_ID", MapUtils.getObject(bean, "NUM_ID" + m.get("NUM_ID"), null));
mapMap.put("EFFECTIVE_NUM", MapUtils.getObject(bean, "EFFECTIVE_NUM" + m.get("NUM_ID"), null));
mapMap.put("GET_NUM", MapUtils.getObject(bean, "GET_NUM" + m.get("NUM_ID"), null));
mapMap.put("PROBABILITY", MapUtils.getObject(bean, "PROBABILITY" + m.get("NUM_ID"), null));
mapMap.put("UPDATE_BY", UPDATE_BY);
mapMap.put("UPDATE_DATE", day);



if(mapMap.get("NUM_ID") != null ){
mapList.add(mapMap);
}

}

}
if(mapList != null && mapList.size()>0){
mapEntity.put("list", mapList);
//更新谈话投票
democracyRecommendService.updateLisMztjVoteAddPerson(mapEntity);
}

//更新父节点里的子节点状态的状态
if(null != bean.get("TD_PRESERVE04") && bean.get("TD_PRESERVE04").toString().length() >0){
PRESERVE04Str = bean.get("TD_PRESERVE04").toString();
if(PRESERVE04Str.length() != (PRESERVE04Str.indexOf("-")+1)){

PRESERVE04Str = PRESERVE04Str.substring((PRESERVE04Str.indexOf("-")+1)) ;

}else{
PRESERVE04Str = "";
}

}

updaeMap.put("NUM_ID", D_NUM_ID);

updaeMap.put("UPDATE_BY", UPDATE_BY);
updaeMap.put("UPDATE_DATE", day);

//更新子节点的字符拼接
updaeMap.put("PRESERVE04", PRESERVE04Str);

democracyRecommendService.updateDemocraticRecommend(updaeMap);

}

} catch (Exception e) {
e.printStackTrace();
result = StandardManage.OPERATE_FAIL;

}
map.put("result", result);
return map;
}
/**
* 完成更新民主推荐父节点
*
* @param formbean
* @param request
* @param response
* @return
* @author KLX
* @throws IOException
*/
@RequestMapping(value = "finisheddemocracyRecommendForm")
public @ResponseBody Map<String, Object> finisheddemocracyRecommendForm(FormBean formbean, Model model,String voteFlag,String hytjid,
String D_NUM_ID,String pid,HttpServletRequest request, HttpServletResponse response,
RedirectAttributes redirectAttributes) throws IOException {

String MOTION_COMPLETE_NEW = request
.getParameter("MOTION_COMPLETE_NEW");
String HANDLE_ID = request.getParameter("HANDLE_ID");
String zgh ="";
//根据id查出教职工号
Map<String, Object> zghMap = Maps.newHashMap();
zghMap.put("NUM_ID", HANDLE_ID);
List<Map<String, Object>> zghList = democracyRecommendService.getRsPartyZghById(zghMap);
if(zghList != null && zghList.size() >0){
zgh = zghList.get(0).get("ZGH").toString();
}

String result = StandardManage.OPERATE_SUCCESS;
Map<String, Object> map = Maps.newHashMap();
Date day=new Date();

//获取当前用户
User user = UserUtils.getUser();
String UPDATE_BY="";
if(user != null && null != user.getLoginName()){
UPDATE_BY=user.getLoginName();
}
Map<String, Object> bean = formbean.getBean();
String PRESERVE01Str = "";

String PRESERVE04Str = "";

//如果是最后一个流程并且为归档,就更新主流程的状态为关闭3
String STATUS = "";
try {
if(bean != null){
//如果是最后一个流程并且为归档,就更新主流程的状态为关闭3
if(null != bean.get("P_PRESERVE01") && bean.get("P_PRESERVE01").toString().length() >0){
PRESERVE01Str = bean.get("P_PRESERVE01").toString();
if(PRESERVE01Str.length() != (PRESERVE01Str.indexOf("-")+1)){

PRESERVE01Str = PRESERVE01Str.substring((PRESERVE01Str.indexOf("-")+1)) ;
if(null == PRESERVE01Str || ("").equals(PRESERVE01Str.trim())){
STATUS = "3";
}
else{
//主流程都完成了,没有归档有试用期,此时更新主流程状态为关闭3
if(PRESERVE01Str.indexOf("7-") == 0 ){
STATUS = "3";
}

}
}else{
PRESERVE01Str ="";
STATUS = "3";
}

}

//更新父节点里的子节点状态的状态
if(null != bean.get("FD_PRESERVE04") && bean.get("FD_PRESERVE04").toString().length() >0){
PRESERVE04Str = bean.get("FD_PRESERVE04").toString();
if(PRESERVE04Str.length() != (PRESERVE04Str.indexOf("-")+1)){

PRESERVE04Str = PRESERVE04Str.substring((PRESERVE04Str.indexOf("-")+1)) ;

}else{
PRESERVE04Str ="";

}

}

bean.put("NUM_ID", D_NUM_ID);
bean.put("MOTION_COMPLETE", MOTION_COMPLETE_NEW);
bean.put("HANDLE_ID", zgh);
bean.put("UPDATE_BY", UPDATE_BY);
bean.put("UPDATE_DATE", day);
bean.put("DEMOCRATIC_STATUS", "1");
//更新子节点的字符拼接
bean.put("PRESERVE04", PRESERVE04Str);

democracyRecommendService.updateDemocraticRecommend(FormBeanUtils.parse(bean));

Map<String, Object> proMap = Maps.newHashMap();
proMap.put("NUM_ID", pid);
proMap.put("UPDATE_BY", UPDATE_BY);
proMap.put("UPDATE_DATE", day);
proMap.put("STATUS", STATUS);
//更新父节点的字符拼接
proMap.put("PRESERVE01", PRESERVE01Str);

democracyRecommendService.updateSelectionProcess(proMap);
}



} catch (Exception e) {
e.printStackTrace();
result = StandardManage.OPERATE_FAIL;

}
map.put("result", result);
return map;
}

//候选名单选择人员,不能出现已经选择的人
@RequestMapping(value = "partyAllUserSelectList")
public String partyAllUserSelectList(String excIds,String orgId,FormBean formbean, HttpServletRequest request, HttpServletResponse response, Model model) {
FormBeanUtils.preDeal(formbean, request);
formbean.getBean().put("TABLE",null);
Page<Map<String, Object>> page = EmpUtilsService.partySelectList(new Page<Map<String, Object>>(request, response), formbean);
FormBeanUtils.afterDeal(formbean, request);
model.addAttribute("map", formbean);
model.addAttribute("page", page);
return "modules/common/empUtils/partyAllUserSelectList";
}
/**
* 民主推荐结果导出列表
*
* @param formBean
* @param request
* @param response
* @param redirectAttributes
* @throws IOException
* @author KLX
* @throws ParseException
*/
@RequestMapping(value = "importExcelMztjjg")
public String importExcelMztjjg(FormBean formBean,String PROCESS_ID, HttpServletRequest request, HttpServletResponse response,
String PROCESS_TYPE,String D_NUM_ID, RedirectAttributes redirectAttributes) throws IOException, ParseException {

Map<String, Object> idMap1 = Maps.newHashMap();
idMap1.put("NUM_ID", D_NUM_ID);
idMap1.put("oneRound", "oneRound");

Map<String, Object> idMap2 = Maps.newHashMap();
idMap2.put("NUM_ID", D_NUM_ID);
idMap2.put("secondRound", "secondRound");
List<Map<String, Object>> idList1 = democracyRecommendService.getMztjHytjId(idMap1);
List<Map<String, Object>> idList2 = democracyRecommendService.getMztjHytjId(idMap2);
String hytjId1 ="";
String hytjId2 ="";
if(idList1 != null && idList1.size()>0){
hytjId1 = idList1.get(0).get("NUM_ID").toString();
}
if(idList2 != null && idList2.size()>0){
hytjId2 = idList2.get(0).get("NUM_ID").toString();
}

Map<String, Object> zghMap = Maps.newHashMap();
zghMap.put("PROCESS_ID", PROCESS_ID);
//取得会议推荐1轮
List<Map<String, Object>> hytjPersonList1 = null;

//取得会议推荐2轮
List<Map<String, Object>> hytjPersonList2 = null;

//取得谈话推荐的集合数据
Map<String, Object> thtjMap = Maps.newHashMap();
List<Map<String, Object>> thtjVotelist = null;

thtjMap.put("NUM_ID", PROCESS_ID);
if(null != democracyRecommendService.getmztjVoteList(thtjMap) && democracyRecommendService.getmztjVoteList(thtjMap).size() >0){
thtjVotelist = democracyRecommendService.getmztjVoteList(thtjMap);

}
//会议投票
Map<String, Object> map = Maps.newHashMap();

map.put("HYTJ_ID", hytjId1);
map.put("voteFlag", "1");
if(null != democracyRecommendService.gettCadreHytjVotelist(map) && democracyRecommendService.gettCadreHytjVotelist(map).size() >0){
hytjPersonList1 = democracyRecommendService.gettCadreHytjVotelist(map);

}
//会议投票2
Map<String, Object> map2 = Maps.newHashMap();

map2.put("HYTJ_ID", hytjId2);
map2.put("voteFlag", "2");
if(null != democracyRecommendService.gettCadreHytjVotelist(map) && democracyRecommendService.gettCadreHytjVotelist(map).size() >0){
if(StringUtils.isNotEmpty(hytjId2)){

hytjPersonList2 = democracyRecommendService.gettCadreHytjVotelist(map2);
}

}


Map<String, Object> processEnty = Maps.newHashMap();
processEnty.put("NUM_ID", PROCESS_ID);
processEnty = democracyRecommendService.getDemocracyRecommendProcessEnty(processEnty);


String title = "";

// 职务集合
Map<String, Object> postMap = Maps.newHashMap();
postMap.put("PROCESS_ID", PROCESS_ID);
List<Map<String, Object>> electivePostList = democracyRecommendService
.getelectivePostListByProcessId(postMap);


OutputStream fos = response.getOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(fos);
ZipOutputStream zos = new ZipOutputStream(bos);

String excelPath = request.getSession().getServletContext().getRealPath("/WEB-INF/template/excel/MZTJTJJGOTHERExcel.xlsx");

File file = new File(excelPath);
int index = 0;
if(electivePostList != null && electivePostList.size()>0){
for(Map<String, Object> tempMap:electivePostList){

//民主推荐结果
Map<String, Object> mztjResultMap = Maps.newHashMap();

mztjResultMap.put("THTJ_ID",processEnty.get("THTJ_NUM_ID"));
mztjResultMap.put("HYTJ_ID1",hytjId1);
mztjResultMap.put("HYTJ_ID2",hytjId2);
mztjResultMap.put("POST_ID",tempMap.get("EP_NUM_ID"));
List<Map<String, Object>> mztjResultList = null;

if(null !=democracyRecommendService.getMZTJJGlist(mztjResultMap) && democracyRecommendService.getMZTJJGlist(mztjResultMap).size()>0){

mztjResultList = democracyRecommendService.getMZTJJGlist(mztjResultMap);
++index;
Map<String, Object>objMap = Maps.newHashMap();
objMap.put("TNUM", thtjVotelist != null ? ("("+thtjVotelist.size()+"人)"):"");
objMap.put("MNUM1", hytjPersonList1 != null ? ("("+hytjPersonList1.size()+"人)"):"");
objMap.put("MNUM2", hytjPersonList2 != null ? ("("+hytjPersonList2.size()+"人)"):"");

InputStream input = new FileInputStream(file);
//定义文件的输出流,但是这是作为zip流的一部分
ByteArrayOutputStream output = new ByteArrayOutputStream();
//用jxlsHelper来处理xlxs输出了流
JxlsHelper jxlsHelper = JxlsHelper.getInstance();
//将map数据放到context中
Context context = new Context(objMap);

context.putVar("list", mztjResultList);

//流文件
jxlsHelper.processTemplate(input, output, context);
//命名文件
title = "("+DictUtils.getDictLabel(processEnty.get("PROCESS_TYPE").toString(), "LCLX", "")+")"+tempMap.get("EP_POST_NAME") +"岗位民主推荐情况汇总";
String filename = title;
zos.putNextEntry(new ZipEntry(title+index+".xlsx"));
response.setHeader("Content-disposition", "attachment;success=true;filename =" +new String(filename.getBytes("utf-8"),"iso-8859-1")+ ".zip");
//把xlsx输出流作为输入流输入到zip输出流中
zos.write(output.toByteArray());
zos.closeEntry();
output.close();
}



}
}
zos.flush();
zos.close();

return null;

}
/* *//**
* 民主推荐结果导出列表,班子换届
*
* @param formBean
* @param request
* @param response
* @param redirectAttributes
* @throws IOException
* @author KLX
* @throws ParseException importExcelMztjjgPoi
*//*
@SuppressWarnings("deprecation")
@RequestMapping(value = "importExcelMztjjgPoi11")
public String importExcelMztjjgPoi(FormBean formBean,String PROCESS_ID, HttpServletRequest request, HttpServletResponse response,
String PROCESS_TYPE,String D_NUM_ID) throws IOException {

//创建HSSFWorkbook对象(excel的文档对象)
HSSFWorkbook wb = new HSSFWorkbook();
//建立新的sheet对象(excel的表单)
HSSFSheet sheet=wb.createSheet("成绩表");
//在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
HSSFRow row1=sheet.createRow(0);
//创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个

HSSFCellStyle cellStyle = wb.createCellStyle();
//设置居中:
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中

HSSFCell cell=row1.createCell(0);
cell.setCellStyle(cellStyle);

// 职务集合
Map<String, Object> postMap = Maps.newHashMap();
postMap.put("PROCESS_ID", PROCESS_ID);

//会议推荐和谈话推荐合并单元格的数量
int titleMergeCell = 0;
List<Map<String, Object>> electivePostList = democracyRecommendService
.getelectivePostListByProcessId(postMap);
if(null != electivePostList && electivePostList.size() >0){

titleMergeCell = electivePostList.size();

//设置单元格内容
cell.setCellValue("民主推荐结果");

//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
sheet.addMergedRegion(new CellRangeAddress(0,0,0,titleMergeCell+titleMergeCell+titleMergeCell));
//在sheet里创建第二行
HSSFRow row2=sheet.createRow(1);

HSSFCell cell1=row2.createCell(0);
HSSFCell cell2= row2.createCell(1);
HSSFCell cell3=row2.createCell((1+titleMergeCell));
HSSFCell cell4=row2.createCell((1+titleMergeCell+titleMergeCell));

cell1.setCellStyle(cellStyle);
cell2.setCellStyle(cellStyle);
cell3.setCellStyle(cellStyle);
cell4.setCellStyle(cellStyle);

//创建单元格并设置单元格内容
row2.createCell(0).setCellValue("姓名");

row2.createCell(1).setCellValue("会议推荐(1人)");

row2.createCell((1+titleMergeCell)).setCellValue("谈话推荐(2人)");

row2.createCell((1+titleMergeCell+titleMergeCell)).setCellValue("合计票(3人)");


//上或者下从0开始会议推荐
sheet.addMergedRegion(new Region(1, (short) 1, 1, (short) (titleMergeCell)));

//上或者下从0开始谈话推荐
sheet.addMergedRegion(new Region(1, (short) (1+titleMergeCell), 1, (short) (titleMergeCell+titleMergeCell)));

//上或者下从0开始合计票
sheet.addMergedRegion(new Region(1, (short) (1+titleMergeCell+titleMergeCell), 1, (short) (titleMergeCell+titleMergeCell+titleMergeCell)));

//在sheet里创建第三行
HSSFRow row3=sheet.createRow(2);
row3.createCell(0).setCellValue("李明");
row3.createCell(1).setCellValue("As178");
row3.createCell(2).setCellValue(87);
row3.createCell(3).setCellValue(78);
row3.createCell(4).setCellValue(78);

//.....省略部分代码


}


//输出Excel文件
OutputStream output=response.getOutputStream();
response.reset();
response.setHeader("Content-disposition", "attachment; filename=details.xls");
response.setContentType("application/msexcel");
wb.write(output);
output.close();
return null;
}*/


/**
* 民主推荐结果导出列表,班子换届
*
* @param formBean
* @param request
* @param response
* @param redirectAttributes
* @throws IOException
* @author KLX
* @throws ParseException importExcelMztjjgPoi
*/
@SuppressWarnings("deprecation")
@RequestMapping(value = "importExcelMztjjgPoi")
public String importExcelMztjjgPoi1(FormBean formBean,String PROCESS_ID, HttpServletRequest request, HttpServletResponse response,
String PROCESS_TYPE,String D_NUM_ID) throws IOException {



OutputStream fos = response.getOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(fos);
ZipOutputStream zos = new ZipOutputStream(bos);

//创建HSSFWorkbook对象(excel的文档对象)
HSSFWorkbook wb = new HSSFWorkbook();
//建立新的sheet对象(excel的表单)
HSSFSheet sheet=wb.createSheet("成绩表");
//在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
HSSFRow row1=sheet.createRow(0);
//创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个

HSSFCellStyle cellStyle = wb.createCellStyle();
//设置居中:
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中

HSSFCell cell=row1.createCell(0);
cell.setCellStyle(cellStyle);

// 职务集合
Map<String, Object> postMap = Maps.newHashMap();
postMap.put("PROCESS_ID", PROCESS_ID);

//会议推荐和谈话推荐合并单元格的数量
int titleMergeCell = 0;
List<Map<String, Object>> electivePostList = democracyRecommendService
.getelectivePostListByProcessId(postMap);
if(null != electivePostList && electivePostList.size() >0){

titleMergeCell = electivePostList.size();

//设置单元格内容
cell.setCellValue("民主推荐结果");

//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
sheet.addMergedRegion(new CellRangeAddress(0,0,0,titleMergeCell+titleMergeCell+titleMergeCell));
//在sheet里创建第二行
HSSFRow row2=sheet.createRow(1);

HSSFCell cell1=row2.createCell(0);
HSSFCell cell2= row2.createCell(1);
HSSFCell cell3=row2.createCell((1+titleMergeCell));
HSSFCell cell4=row2.createCell((1+titleMergeCell+titleMergeCell));

cell1.setCellStyle(cellStyle);
cell2.setCellStyle(cellStyle);
cell3.setCellStyle(cellStyle);
cell4.setCellStyle(cellStyle);

//创建单元格并设置单元格内容
row2.createCell(0).setCellValue("姓名");

row2.createCell(1).setCellValue("会议推荐(1人)");

row2.createCell((1+titleMergeCell)).setCellValue("谈话推荐(2人)");

row2.createCell((1+titleMergeCell+titleMergeCell)).setCellValue("合计票(3人)");


//上或者下从0开始会议推荐
sheet.addMergedRegion(new Region(1, (short) 1, 1, (short) (titleMergeCell)));

//上或者下从0开始谈话推荐
sheet.addMergedRegion(new Region(1, (short) (1+titleMergeCell), 1, (short) (titleMergeCell+titleMergeCell)));

//上或者下从0开始合计票
sheet.addMergedRegion(new Region(1, (short) (1+titleMergeCell+titleMergeCell), 1, (short) (titleMergeCell+titleMergeCell+titleMergeCell)));

/*//在sheet里创建第三行
HSSFRow row3=sheet.createRow(2);
row3.createCell(0).setCellValue("李明");
row3.createCell(1).setCellValue("As178");
row3.createCell(2).setCellValue(87);
row3.createCell(3).setCellValue(78);
row3.createCell(4).setCellValue(78);*/
//.....省略部分代码
}

//创建HSSFWorkbook对象(excel的文档对象)
HSSFWorkbook wb1 = new HSSFWorkbook();
//建立新的sheet对象(excel的表单)
HSSFSheet shee1t=wb1.createSheet("成绩表");
//在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
HSSFRow r1=sheet.createRow(0);
//创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个

HSSFCellStyle cellStyle1 = wb.createCellStyle();
//设置居中:
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中

HSSFCell cell1=r1.createCell(0);
cell1.setCellStyle(cellStyle);

// 职务集合
Map<String, Object> postMap1 = Maps.newHashMap();
postMap1.put("PROCESS_ID", PROCESS_ID);

//会议推荐和谈话推荐合并单元格的数量
int titleMergeCell1 = 0;
List<Map<String, Object>> electivePostList1 = democracyRecommendService
.getelectivePostListByProcessId(postMap1);
if(null != electivePostList1 && electivePostList1.size() >0){

titleMergeCell1 = electivePostList1.size();

//设置单元格内容
cell1.setCellValue("民主推荐结果");

//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
sheet.addMergedRegion(new CellRangeAddress(0,0,0,titleMergeCell+titleMergeCell+titleMergeCell));
//在sheet里创建第二行
HSSFRow r2=sheet.createRow(1);

//创建单元格并设置单元格内容
r2.createCell(0).setCellValue("姓名1");

r2.createCell(1).setCellValue("会议推荐(11人)");

r2.createCell((1+titleMergeCell)).setCellValue("谈话推荐(21人)");

r2.createCell((1+titleMergeCell+titleMergeCell)).setCellValue("合计票(31人)");


//上或者下从0开始会议推荐
sheet.addMergedRegion(new Region(1, (short) 1, 1, (short) (titleMergeCell)));

//上或者下从0开始谈话推荐
sheet.addMergedRegion(new Region(1, (short) (1+titleMergeCell), 1, (short) (titleMergeCell+titleMergeCell)));

//上或者下从0开始合计票
sheet.addMergedRegion(new Region(1, (short) (1+titleMergeCell+titleMergeCell), 1, (short) (titleMergeCell+titleMergeCell+titleMergeCell)));

/*//在sheet里创建第三行
HSSFRow row3=sheet.createRow(2);
row3.createCell(0).setCellValue("李明");
row3.createCell(1).setCellValue("As178");
row3.createCell(2).setCellValue(87);
row3.createCell(3).setCellValue(78);
row3.createCell(4).setCellValue(78);*/
//.....省略部分代码
}




















//定义文件的输出流,但是这是作为zip流的一部分
ByteArrayOutputStream output = new ByteArrayOutputStream();

wb.write(output);
wb1.write(output);
//流文件
String filename = "konlgin";
//命名文件
zos.putNextEntry(new ZipEntry("f.xls"));
zos.putNextEntry(new ZipEntry("f1.xls"));
response.setHeader("Content-disposition", "attachment;success=true;filename =" +new String(filename.getBytes("utf-8"),"iso-8859-1")+ ".zip");

// response.setContentType("application/msexcel");
//把xlsx输出流作为输入流输入到zip输出流中
zos.write(output.toByteArray());
zos.closeEntry();
output.close();

zos.flush();
zos.close();

return null;

/*
//输出Excel文件
OutputStream output=response.getOutputStream();
response.reset();
response.setHeader("Content-disposition", "attachment; filename=details.xls");
response.setContentType("application/msexcel");
wb.write(output);
output.close();*/
}
}

猜你喜欢

转载自www.cnblogs.com/konglxblog/p/10011748.html