java poi 导入excel

从本机电脑导入excel到服务器中 ,首先要把文件上传到服务器中,这时候,我使用的是strus2 接受上传的文件;

package ht.humanResources.action;

import ht.humanResources.model.HtglNew;
import ht.humanResources.service.HrHtglService;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class HtImportAction extends ActionSupport{
    private HrHtglService hrHtglService;
    private File file;
    private String fileFileName;

    private String fileContentType;
    private HttpServletRequest req;

    public String upload() throws IOException{
        req=ServletActionContext.getRequest();
        req.setCharacterEncoding("utf-8");

//文件上传到服务器,指定一个保存文件的位置,文件以Post 方式提交到服务器,提交过程中文件在表单中
        String realPath=    ServletActionContext.getServletContext().getRealPath("/upload/htImport/");

        String name=this.getFileFileName();
        //方法1 开始
//        if (file != null) {
//        File savefile = new File(new File(realPath), this.getFileFileName());
//        if (!savefile.getParentFile().exists()){

//        savefile.getParentFile().mkdirs();
//        }

//        FileUtils.copyFile(file, savefile);
//        }
        //---方法1结束
        try {

            String filename = realPath+File.separator+name;  
            copyfile(filename);
            List<HtglNew>list=    DaoruExcelUtil.getList(filename);
            List list2=DaoruExcelUtil.reclist;
            this.getHrHtglService().saveHtglNew(list);
            this.getHrHtglService().saveHtglRec(list2);
            req.setAttribute("success", "1");
        } catch (Exception e) {
            e.printStackTrace();
            req.setAttribute("success", "0");
        }

        return "success";


    }

    public void copyfile(String path) throws IOException{
        //方法2开始
//将文件写到服务器指定位置的代码
        File outfile=new File(path);
        if(!outfile.getParentFile().exists()){
            outfile.getParentFile().mkdirs();
        }

        InputStream is=new FileInputStream(this.getFile());

        FileOutputStream out=new FileOutputStream(outfile);

        byte[] buffer=new byte[1024];
        int len=0;
        while(( len=is.read(buffer))!=-1){
            out.write(buffer);
        }
        out.close();
        is.close();
        //方法2结束
    }


    public File getFile() {
        return file;
    }

    public void setFile(File file) {
        this.file = file;
    }



    public String getFileContentType() {
        return fileContentType;
    }

    public void setFileContentType(String fileContentType) {
        this.fileContentType = fileContentType;
    }

    public String getFileFileName() {
        return fileFileName;
    }


    public void setFileFileName(String fileFileName) {
        this.fileFileName = fileFileName;
    }

    public HrHtglService getHrHtglService() {
        return hrHtglService;
    }

    public void setHrHtglService(HrHtglService hrHtglService) {
        this.hrHtglService = hrHtglService;
    }

}

将导入excel的业务提取写出来 ,需要注意的是去excel中各种不同的数据类型的数据,我这次导入,时读取固定的模板的文件;模板文件放出来供大家参考;

 

劳动合同管理台账                                                                                                                                                                                                                                         
单位名称:有限责任公司                                       总人数:__295人                                                                                                                                                                                                                                           
序号个人编号姓名性别年龄状态劳动合同签订编码第一次劳动合同续签编码第二次劳动合同续签编码辞职日期当前日期到期提醒备注                                                                                                                                                                                                                                         
期限起止时间期限起止时间期限起止时间                                                                                                                                                                                                                                         
10002张三1960年8月10日57在职无固定
2015-1-1
2015010600022015.8.25                                                                                                                                                                                                                                         

 

 

先将本地文件上传到服务器制定路径,然后读取Excel文件内容,保存到数据库,下面是读取文件中数据的类

 

 

package ht.humanResources.action;

import ht.humanResources.model.HtglNew;
import ht.humanResources.model.HtglRec;
import ht.util.UuidGenerator;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.context.support.StaticApplicationContext;



public class DaoruExcelUtil {
    public  static List reclist=new ArrayList<HtglRec>();
    static Logger logger=Logger.getLogger(DaoruExcelUtil.class);
    private static SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    private static SimpleDateFormat sdf2=new SimpleDateFormat("yyyy.MM.dd");
    private static SimpleDateFormat sdf3=new SimpleDateFormat("yyyy年MM月dd日");
//传入文件名,读取文件数据
    public static List<HtglNew> getList(String filepath) throws IOException{
        List <HtglNew> list=new ArrayList<HtglNew>();
        String sheetname=null;
        Sheet sheet=null;
        FileInputStream in=new FileInputStream(new File(filepath));
        Workbook wb=null;
        int rowCount;
        Row row=null;
        int cellCount;
        Cell cell;
        int cellType;
        String empname;
        String depname;
        Object cellValue=null;
        boolean isExcel2007=false;
        boolean isExcel2003=false;
        if(filepath.endsWith(".xlsx")){
            isExcel2007=true;
        }else if(filepath.endsWith(".xls")){
            isExcel2003=true;
        }else {
            logger.info("不是excel文件");
            return null;
        }
        if(isExcel2007){
            wb=new XSSFWorkbook(in);
        }else if(isExcel2003){

            wb=new HSSFWorkbook(in);

        }
        FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();

        try{



            //s计算sheet的数量
            int sheetCount=    wb.getNumberOfSheets();
            for (int i = 0; i < sheetCount; i++) {
                //遍历得到每一个sheet
                sheet=    wb.getSheetAt(i);
                //得到excel的行数
                sheetname=    sheet.getSheetName();
                logger.info("正在操作"+sheetname+"sheet");
                //得到总行数
                rowCount=    sheet.getLastRowNum()+1;

                logger.info("总行数为"+rowCount);
                depname=        sheet.getRow(1).getCell(0).getStringCellValue();
            
                for (int j = 4; j < rowCount; j++) {
                    //    遍历每行
                    row=    sheet.getRow(j);

                    cellCount=    row.getPhysicalNumberOfCells();
                    logger.info("总列数为"+cellCount);
                    logger.info("总行数为"+rowCount);
                    logger.info("正在操作第"+j+"行");




                    HtglNew htglNew=new HtglNew();
                    String key=UuidGenerator.createId();
                    htglNew.setId(key);
                    htglNew.setDepname(depname);
                    cellValue=getCellValue(2,row, evaluator);
                    if(cellValue!=""){

                        htglNew.setEmpname((String)cellValue);
                    }
                    cellValue=getCellValue(3,row,evaluator);
                    if(cellValue!=""){

                        htglNew.setXingbie((String)cellValue);
                    }
                    cellValue=getCellValue(4,row,evaluator);
                    if(cellValue!=""){
                        if(cellValue instanceof Date){

                            htglNew.setBirthday((Date)cellValue);
                        }else if(cellValue instanceof String){
                            htglNew.setBirthday(sdf3.parse((String)cellValue));
                        }
//                        htglNew.setBirthday((Date)cellValue);
                    }
                    cellValue=getCellValue(5,row,evaluator);
                    if(cellValue!=""){

                        htglNew.setAge(((Double)cellValue).intValue());
                    }

                    htglNew.setStatus((String)getCellValue(6,row,evaluator));

                    htglNew.setBz((String)getCellValue(22,row,evaluator));


                    //htglNew.setRecord(getrecord(row));
//                    合同记录表
                    int col=7;
                    for (int k = 0; k < 3; k++) {
                        //7 8 9 10  /11 12 13 14 /
                        HtglRec rec=new HtglRec();
                        rec.setId(UuidGenerator.createId());
                        rec.setHtglId(key);
                        cellValue=    getCellValue(col,row,evaluator);
                        if(cellValue!=""){

                            rec.setContinueYear((String)cellValue);
                        }
                        cellValue=    getCellValue(col+1,row,evaluator);
                        if(cellValue!=""){
                            if(cellValue instanceof Date){

                                rec.setStartTime((Date)cellValue);
                            }else if(cellValue instanceof String){
                                if(!((String)cellValue).trim().equals("")){

                                    rec.setStartTime(sdf2.parse((String)cellValue));
                                }
                            }

                        }
                        cellValue=    getCellValue(col+2,row,evaluator);
                        if(cellValue!=""){

                            rec.setEndTime((Date)cellValue);
                        }
                        cellValue=    getCellValue(col+3,row,evaluator);
                        if(cellValue!=""){

                            rec.setHtcode((String)cellValue);
                        }
                        col=col+4;
                        reclist.add(rec);
                    }
                    list.add(htglNew);



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







        return list;
    }
//    private static String getrecord(Row row){
//    String s="";
//    try {


//    String ss="至";
//    String s1=String.valueOf(getCellValue(7,row))    ;
//    String s2=String.valueOf(        getCellValue(8,row));

//    String s3=String.valueOf(        getCellValue(10,row));
//    String s4=String.valueOf(    getCellValue(11,row));

//    String s5=String.valueOf(        getCellValue(13,row));
//    String s6=String.valueOf(        getCellValue(14,row));
//    if(s1!=""){
//    s=s1;

//    if(!"".equals(s2)){
//    s=s1+ss+s2;
//    if(!"".equals(s3)){
//    s=s+ss+s3;



//    if(!"".equals(s4)){
//    s=s+ss+s4;
//    if(!"".equals(s5)){
//    s=s+ss+s5;
//    if(!"".equals(s6)){
//    s=s+ss+s6;
//    }
//    }
//    }
//    }
//    }
//    }
//    } catch (Exception e) {
//    e.printStackTrace();
//    return s;
//    }


//    return s;
//    }






    private static Object getCellValue(int i,Row row,FormulaEvaluator evaluator){




        Date dd=null;
        Object value=null;
        try {




            Cell    cell=row.getCell(i);

            int      cellType=    cell.getCellType();

            switch (cellType) {
            case Cell.CELL_TYPE_STRING:
                value=cell.getStringCellValue();
                break;
            case Cell.CELL_TYPE_FORMULA://公式
//                value=cell.getCellFormula();
                value=    evaluator.evaluate(cell).getNumberValue();
                //value="";
                break;
            case Cell.CELL_TYPE_NUMERIC:
                if(    cell.getCellStyle().getDataFormat()==28||cell.getCellStyle().getDataFormat()==31){
                    value=   cell.getDateCellValue();
                    break;
                }

                if (HSSFDateUtil.isCellDateFormatted(cell)) {     
                    //  如果是date类型则 ,获取该cell的date值     
                    Date d=    HSSFDateUtil.getJavaDate(cell.getNumericCellValue());
                    value=d;
                } else { // 纯数字     
                    value = cell.getNumericCellValue();
                }
//                value=cell.getNumericCellValue();
                break;
            case Cell.CELL_TYPE_BOOLEAN:
                value=cell.getBooleanCellValue();
                break;
            case Cell.CELL_TYPE_BLANK:
                value="";
                break;
            case Cell.CELL_TYPE_ERROR:
                value="";
                break;

            default:
                value="";
            break;
            }


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

    }




}

//SERVICE 操作 保存 从文件中提取出的对象集合

package ht.humanResources.service;

import ht.humanResources.dao.HrHtglDao;
import ht.humanResources.dao.HtglNewDao;
import ht.humanResources.dao.HtglRecDao;
import ht.humanResources.model.HrHtgl;
import ht.humanResources.model.HtglNew;
import ht.humanResources.model.HtglRec;
import ht.util.StringToDate;
import ht.util.UuidGenerator;
import ht.util.hibernate.HibernateUtil;
import ht.util.page.PageBean;
import ht.util.page.PageResult;
import ht.util.page.PageService;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;

import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;

import Login.Loginer;
//合同管理  zrj 20160302
public class HrHtglService extends Action{
    private HrHtglDao hrHtglDao;
    private HtglNewDao htglNewDao;
    private PageService pageService;
    static Logger logger=Logger.getLogger(HrXbbmbSerivce.class);
    private HtglRecDao htglRecDao;
    public HtglRecDao getHtglRecDao() {
        return htglRecDao;
    }
    public void setHtglRecDao(HtglRecDao htglRecDao) {
        this.htglRecDao = htglRecDao;
    }
    /**
     * 根据id查数据去修改页面
     * @param request
     * @return
     * @throws UnsupportedEncodingException
     */
    public boolean findHtById(HttpServletRequest request) throws UnsupportedEncodingException{
        boolean isSucc=false;
        logger.info("begin finding.......");
        try {
            String id=request.getParameter("id");
            HrHtgl hrHtglListaaa=this.getHrHtglDao().findById(id);
            request.setAttribute("hrHtglListaaa", hrHtglListaaa);
            isSucc=true;
            logger.equals("find successful.............");
        } catch (RuntimeException e) {
            isSucc = false;
            logger.error("find failed", e);
        }
        return isSucc;
    }
    public boolean findHtByIdNew(HttpServletRequest request) throws UnsupportedEncodingException{
        boolean isSucc=false;
        logger.info("begin finding.......");
        try {
            String id=request.getParameter("id");
            HtglNew hrHtglListaaa=this.getHtglNewDao().findById(id);
        List<HtglRec> list=    this.getHtglRecDao().findByHql("from HtglRec where htglId='"+id+"' order by startTime");
            request.setAttribute("htglNew", hrHtglListaaa);
            request.setAttribute("list", list);
//            String sql="select c.*,d.* from htgl_new c,htgl_rec d where c.id=d.htgl_id and c.id='"+id+"'";
//            this.getHrHtglDao().findBySQL(sql);
            isSucc=true;
            logger.equals("find successful.............");
        } catch (RuntimeException e) {
            isSucc = false;
            logger.error("find failed", e);
        }
        return isSucc;
    }
    /**
     * 删除
     * @param request
     * @param response
     * @return
     * @throws IOException
     */
    public boolean delete(HttpServletRequest request,HttpServletResponse response) throws IOException{
        logger.debug("deleting  message.....");
        boolean isSucc=false;
        PrintWriter pw;
        try {
            pw=response.getWriter();
            String id="";
            if(request.getParameter("id")!=null){
                id=(String)request.getParameter("id");
            }
            if(!id.equals("")){
                HrHtgl hh=this.getHrHtglDao().findById(id);
                this.getHrHtglDao().delete(hh);
                this.getHtglRecDao().deleteByProperty("htglId", id);
                pw.print("0");
                logger.info("delete successful.....");
                isSucc=true;
            }else{
                pw.print("1");
            }
        } catch (RuntimeException re) {
            isSucc=false;
            logger.error("delete failed.....");
            throw re;
        }
        return isSucc;
    }
    public void deleteNew(HttpServletRequest request,HttpServletResponse response) throws IOException{
        logger.debug("deleting  message.....");
        boolean isSucc=false;
        PrintWriter pw;
        try {
            pw=response.getWriter();
            String id="";
            if(request.getParameter("id")!=null){
                id=(String)request.getParameter("id");
            }
            if(!id.equals("")){
                HtglNew hh=this.getHtglNewDao().findById(id);
                this.getHtglNewDao().delete(hh);
                pw.print("0");
                logger.info("delete successful.....");
            }else{
                pw.print("1");
            }
            pw.flush();
        } catch (RuntimeException re) {
            isSucc=false;
            logger.error("delete failed.....");
            throw re;
        }

    }
    public void deleteRec(HttpServletRequest request,HttpServletResponse response) throws IOException{
        logger.debug("deleting  message.....");
        boolean isSucc=false;
        PrintWriter pw;
        try {
            pw=response.getWriter();
            String id="";
            if(request.getParameter("id")!=null){
                id=(String)request.getParameter("id");
            }
            if(!id.equals("")){
                HtglNew hh=this.getHtglNewDao().findById(id);
                this.getHtglNewDao().delete(hh);
                pw.print("0");
                logger.info("delete successful.....");
            }else{
                pw.print("1");
            }
            pw.flush();
        } catch (RuntimeException re) {
            isSucc=false;
            logger.error("delete failed.....");
            throw re;
        }
        
    }
    /**
     * 修改
     * @param request
     * @return
     * @throws ParseException
     */
    public boolean updHt(HttpServletRequest request) throws ParseException{
        logger.debug("saveOrUpdating polrole message......");
        boolean isSucc=false;
        try {
            String id=request.getParameter("id");
            String htbh=request.getParameter("htbh");
            String qddate =request.getParameter("qddate");
            String htmc=request.getParameter("htmc");
            String htzt=request.getParameter("htzt");
            String htjf=request.getParameter("htjf");
            String htyf=request.getParameter("htyf");
            String kssj=request.getParameter("kssj");
            String jssj=request.getParameter("jssj");
            String htnx=request.getParameter("htnx");
            String qdr=request.getParameter("qdr");
            String bz=request.getParameter("bz");
            HrHtgl hh=new HrHtgl();
            hh.setId(id);
            hh.setHtbh(htbh);
            hh.setHtmc(htmc);
            hh.setHtzt(htzt);
            hh.setHtjf(htjf);
            hh.setHtyf(htyf);
            hh.setHtnx(htnx);
            hh.setQdr(qdr);
            hh.setBz(bz);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            hh.setQddate(sdf.parse(qddate));
            hh.setKssj(sdf.parse(kssj));
            hh.setJssj(sdf.parse(jssj));
            this.getHrHtglDao().update(hh);
            ActionMessages messages = new ActionMessages();
            messages.add("save_success",new ActionMessage("save.success"));
            saveMessages(request, messages);
            saveErrors(request, messages);
            isSucc=true;
        } catch (RuntimeException re) {
            // re.printStackTrace();
            logger.error("saveOrUpdate failed,error:"+re);
            isSucc=false;
            throw re;
        }
        return isSucc;
    }
    
    public boolean updHtNew(HttpServletRequest request) throws ParseException{
        logger.debug("saveOrUpdating polrole message......");
        boolean isSucc=false;
        try {

            String id=request.getParameter("id");
            String depname=request.getParameter("depname");
            String empname =request.getParameter("empname");
            String xingbie=request.getParameter("xingbie");
            String status=request.getParameter("status");
            String limit=request.getParameter("limit");
            String bz=request.getParameter("bz");


            int  age= Integer.parseInt(request.getParameter("age"));
            //int limitYear=Integer.parseInt(request.getParameter("limitYear"));
            String birthday=request.getParameter("birthday");
            String quittime=request.getParameter("quittime");
            String[] limitYear=request.getParameterValues("limitYear");
            String[] htcode=request.getParameterValues("htcode");
            String [] starttime=request.getParameterValues("starttime");
            String [] endtime=request.getParameterValues("endtime");
            String [] recid=request.getParameterValues("recid");
            HtglNew hh=new HtglNew();
            //    String key = Login.Loginer.getNewID(null,null,null);
            hh.setId(id);
            hh.setDepname(depname);
            hh.setEmpname(empname);
            hh.setXingbie(xingbie);
            hh.setStatus(status);
            hh.setLimit(limit);
            hh.setAge(age);
            hh.setBz(bz);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            if(birthday!=null&&!birthday.equals("")){

                hh.setBirthday(sdf.parse(birthday));
            }
            if(quittime!=null&&!quittime.equals("")){

                hh.setQuittime(sdf.parse(quittime));
            }
            this.getHtglNewDao().update(hh);
            for (int i = 0; i < endtime.length; i++) {
                HtglRec rec=new HtglRec();
                rec.setId(recid[i]);
                if(starttime[i]!=null&&!starttime[i].equals("")){
                    rec.setStartTime(sdf.parse(starttime[i]));
                }
                if(endtime[i]!=null&&!endtime[i].equals("")){
                    rec.setEndTime(sdf.parse(endtime[i]));
                }
                rec.setHtglId(id);
                rec.setHtcode(htcode[i]);
                rec.setContinueYear(limitYear[i]);

                this.getHtglRecDao().update(rec);
            }            

            isSucc=true;
        } catch (RuntimeException re) {
            // re.printStackTrace();
            logger.error("saveOrUpdate failed,error:"+re);
            isSucc=false;
            throw re;
        }
        return isSucc;
    }

    /**
     * 添加合同
     * @param request
     * @return
     * @throws ParseException
     */
    public boolean addHt(HttpServletRequest request) throws ParseException{
        logger.debug("saveOrUpdating polrole message......");
        boolean isSucc=false;
        try {
            String htbh=request.getParameter("htbh");
            String qddate =request.getParameter("qddate");
            String htmc=request.getParameter("htmc");
            String htzt=request.getParameter("htzt");
            String htjf=request.getParameter("htjf");
            String htyf=request.getParameter("htyf");
            String kssj=request.getParameter("kssj");
            String jssj=request.getParameter("jssj");
            String htnx=request.getParameter("htnx");
            String qdr=request.getParameter("qdr");
            String bz=request.getParameter("bz");
            HrHtgl hh=new HrHtgl();
            String key = Login.Loginer.getNewID(null,null,null);
            hh.setId(key);
            hh.setHtbh(htbh);
            hh.setHtmc(htmc);
            hh.setHtzt(htzt);
            hh.setHtjf(htjf);
            hh.setHtyf(htyf);
            hh.setHtnx(htnx);
            hh.setQdr(qdr);
            hh.setBz(bz);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            hh.setQddate(sdf.parse(qddate));
            hh.setKssj(sdf.parse(kssj));
            hh.setJssj(sdf.parse(jssj));
            this.getHrHtglDao().save(hh);
            ActionMessages messages = new ActionMessages();
            messages.add("save_success",new ActionMessage("save.success"));
            saveMessages(request, messages);
            saveErrors(request, messages);
            isSucc=true;
        } catch (RuntimeException re) {
            // re.printStackTrace();
            logger.error("saveOrUpdate failed,error:"+re);
            isSucc=false;
            throw re;
        }
        return isSucc;
    }
    
    public  void getHtDaoqi(HttpServletRequest req,HttpServletResponse res) throws IOException{
        PrintWriter pr=null;
        
    Loginer lo=(Loginer)    req.getSession().getAttribute("loginer");
    String empname=lo.getEmpName();
        pr=res.getWriter();
    List<Object[]> list=    this.getHtglNewDao().findBySQL("select empname,endtime from htgl_rec a, htgl_new b where a.endtime is not null and a.continue_year != '无固定' and a.htgl_id = b.id and a.endtime >= sysdate and a.endtime< add_months(sysdate,1)");
        
        for(Object[] o:list){
            
            if(((String)o[0]).equals(empname)){
                JSONObject jo=new JSONObject();
                jo.put("empname", empname);
                jo.put("endtime",StringToDate.dateToString((Date)o[1]) );
                pr.print(jo.toString());
                break;
            }
            
            
        }
        
        
    }
    
    
    /**
     * 添加合同
     * @param request
     * @return
     * @throws ParseException
     */
    public boolean addHtNew(HttpServletRequest request) throws ParseException{
        logger.debug("saveOrUpdating polrole message......");
        boolean isSucc=false;
        try {
            String depname=request.getParameter("depname");
            String empname =request.getParameter("empname");
            String xingbie=request.getParameter("xingbie");
            String record=request.getParameter("record");
            String status=request.getParameter("status");
            String limit=request.getParameter("limit");
            String bz=request.getParameter("bz");


            int  age= Integer.parseInt(request.getParameter("age"));
            //    int limitYear=Integer.parseInt(request.getParameter("limitYear"));
            String birthday=request.getParameter("birthday");
            String quittime=request.getParameter("quittime");
            String[] limitYear=request.getParameterValues("limitYear");
            String[] htcode=request.getParameterValues("htcode");
            String []starttime=request.getParameterValues("starttime");
            String []endtime=request.getParameterValues("endtime");
            HtglNew hh=new HtglNew();
            String key = Login.Loginer.getNewID(null,null,null);
            hh.setId(key);
            hh.setDepname(depname);
            hh.setEmpname(empname);
            hh.setXingbie(xingbie);
            hh.setRecord(record);

            hh.setStatus(status);
            hh.setLimit(limit);
            hh.setAge(age);

            hh.setBz(bz);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            if(birthday!=null&&!birthday.equals("")){

                hh.setBirthday(sdf.parse(birthday));
            }
            if(quittime!=null&&!quittime.equals("")){

                hh.setQuittime(sdf.parse(quittime));
            }
            this.getHtglNewDao().save(hh);


            for (int i = 0; i < endtime.length; i++) {
                HtglRec rec=new HtglRec();
                rec.setId(UuidGenerator.createId());
                if(starttime[i]!=null&&!starttime[i].equals("")){
                    rec.setStartTime(sdf.parse(starttime[i]));
                }
                if(endtime[i]!=null&&!endtime[i].equals("")){
                    rec.setEndTime(sdf.parse(endtime[i]));
                }
                rec.setHtglId(key);
                rec.setHtcode(htcode[i]);
                rec.setContinueYear(limitYear[i]);

                this.getHtglRecDao().save(rec);
            }
//            ActionMessages messages = new ActionMessages();
//            messages.add("save_success",new ActionMessage("save.success"));
//            saveMessages(request, messages);
//            saveErrors(request, messages);
            isSucc=true;
        } catch (RuntimeException re) {
            // re.printStackTrace();
            logger.error("saveOrUpdate failed,error:"+re);
            isSucc=false;
            throw re;
        }
        return isSucc;
    }
    /**
     * 查询所有合同
     * @param request
     * @param response
     * @return
     */
    public boolean showHtglList(HttpServletRequest request,HttpServletResponse response){
        boolean isSucc = false;
        logger.info("begin finding.......");
        try {
            StringBuffer hql=new StringBuffer();
            hql.append(" from HrHtgl ");
            String status=request.getParameter("status");
            request.setAttribute("status",status);
            if(status!=null && !status.equals(""))
            {
                if(status.equals("0")) hql.append(" order by qddate desc");
                else if(status.equals("1")) hql.append(" order by htbh asc");
                else if(status.equals("2")) hql.append(" order by htbh desc");
            }else hql.append(" order by qddate asc");
            PageBean pageBean = PageBean.getPageBean(request,response,10);
            PageResult pageresult = this.getPageService().findByConditionsForDBPage(hql.toString(), pageBean);
            request.setAttribute("pageresult", pageresult);
            isSucc = true;
            logger.equals("find successful.............");
        } catch (RuntimeException e) {
            isSucc = false;
            logger.error("find failed", e);
        }
        return isSucc;
    }
    public boolean showHtglListNew(HttpServletRequest request,HttpServletResponse response){
        boolean isSucc = false;
        logger.info("begin finding.......");
        try {
            String ss="update htgl_new set record='1' where id in ( select b.id from htgl_rec a, htgl_new b where a.endtime is not null and a.continue_year != '无固定' and a.htgl_id = b.id and a.endtime >= sysdate and a.endtime < add_months(sysdate, 1))";
            HibernateUtil.updateBySql(ss);
            StringBuffer hql=new StringBuffer();
            String status=request.getParameter("status");
       String empname1=        request.getParameter("empname1");
            hql.append(" select b.id,b.depname,b.empname,b.status,fun_get_ht_rec(b.id),b.record from htgl_rec a, htgl_new b");
            
            hql.append(" where a.endtime is not null and a.continue_year != '无固定' and a.htgl_id = b.id and a.endtime >= sysdate and a.endtime < add_months(sysdate, 1)");
            hql.append(" union all select a.id,a.depname,a.empname,a.status,fun_get_ht_rec(a.id),a.record from htgl_new a where a.id not in(select b.id");
            hql.append(" from htgl_rec a, htgl_new b where a.endtime is not null and a.continue_year != '无固定' and a.htgl_id = b.id");
            hql.append(" and a.endtime >= sysdate and a.endtime < add_months(sysdate, 1))");
            
            
            
            
            if(!"".equals(empname1)&&empname1!=null){
                hql.append("and a.empname like '%"+empname1+"%'");
            }
            
//            request.setAttribute("status",status);
//            if(status!=null && !status.equals(""))
//            {
//            if(status.equals("0")) hql.append(" order by qddate desc");
//            else if(status.equals("1")) hql.append(" order by htbh asc");
//            else if(status.equals("2")) hql.append(" order by htbh desc");
//            }else hql.append(" order by qddate asc");
            
            
            PageBean pageBean = PageBean.getPageBean(request,response,10);
            PageResult pageresult = this.getPageService().findByConditionsForDBPageSQL(hql.toString(), pageBean);
            request.setAttribute("empname1", empname1);
            List<Object[]> li1=    this.getHtglNewDao().findBySQL("select empname,endtime from htgl_rec a, htgl_new b where a.endtime is not null and a.continue_year != '无固定' and a.htgl_id = b.id and a.endtime >= sysdate and a.endtime< add_months(sysdate,1)");

            request.setAttribute("count", li1.size());
            request.setAttribute("pageresult", pageresult);
            isSucc = true;
            logger.equals("find successful.............");
        } catch (RuntimeException e) {
            isSucc = false;
            e.printStackTrace();
            logger.error("find failed", e);
        }
        return isSucc;
    }

    public boolean saveHtglNew(List<HtglNew> list) throws ParseException{
        logger.debug("saveOrUpdating polrole message......");
        boolean isSucc=false;
        try {


            for (int i = 0; i < list.size(); i++) {
                HtglNew hh=    list.get(i);


                this.getHtglNewDao().save(hh);
            }




            isSucc=true;
        } catch (RuntimeException re) {
            // re.printStackTrace();
            logger.error("saveOrUpdate failed,error:"+re);
            isSucc=false;
            throw re;
        }
        return isSucc;
    }

    public boolean saveHtglRec(List<HtglRec> list) throws ParseException{
        logger.debug("saveOrUpdating polrole message......");
        boolean isSucc=false;
        try {


            for (int i = 0; i < list.size(); i++) {

                HtglRec rec=    list.get(i);
                this.getHtglRecDao().saveOrUpdate(rec);

            }

            isSucc=true;
        } catch (RuntimeException re) {
            // re.printStackTrace();
            logger.error("saveOrUpdate failed,error:"+re);
            isSucc=false;
            throw re;
        }

        return isSucc;
    }




    public HrHtglDao getHrHtglDao() {
        return hrHtglDao;
    }
    public void setHrHtglDao(HrHtglDao hrHtglDao) {
        this.hrHtglDao = hrHtglDao;
    }
    public PageService getPageService() {
        return pageService;
    }
    public void setPageService(PageService pageService) {
        this.pageService = pageService;
    }
    public static Logger getLogger() {
        return logger;
    }
    public static void setLogger(Logger logger) {
        HrHtglService.logger = logger;
    }
    public HtglNewDao getHtglNewDao() {
        return htglNewDao;
    }
    public void setHtglNewDao(HtglNewDao htglNewDao) {
        this.htglNewDao = htglNewDao;
    }

}

 

 

 

 

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值