package cn.com.countrygarden.bi.main.controller.renli;

import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;

import nc.itf.hi.ws.IPsnInfoQueryWs.IPsnInfoQueryWsPortTypeProxy;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import cn.com.countrygarden.bi.main.model.hi_psndoc_work;
import cn.com.countrygarden.bi.main.model.hi_psnjob;
import cn.com.countrygarden.bi.main.service.performance.hipsnjobService;



@Controller("HipsnjobController")
@RequestMapping("/HipsnjobController")
public class HipsnjobController {

	@Autowired
	private hipsnjobService hipsnjobService; 
	@ResponseBody
    @RequestMapping(value = "/Hipsnjob",method = {RequestMethod.POST,RequestMethod.GET})
	public void hipsndocwork(@RequestParam(value = "pageno") int pageno,@RequestParam(value = "pagesize") int pagesize){
    	IPsnInfoQueryWsPortTypeProxy ip = new IPsnInfoQueryWsPortTypeProxy();
   	    String dayin;
   	    String circle;	
   	 try {
			dayin = ip.queryPsnJobInfo(pageno, pagesize);
//			System.out.println(dayin);
			JSONObject jsonObject = JSON.parseObject(dayin);
			String total = jsonObject.getString("total");
			int inttotal = Integer.parseInt(total);
			int pagenototal = inttotal/pagesize;
			if(inttotal%pagesize==0){
				 pagenototal = inttotal/pagesize;
			}else{
				pagenototal = inttotal/pagesize+1;
			}
			for(int j=264;j<=pagenototal;j++){
			circle = ip.queryPsnJobInfo(j, pagesize);
				/*System.out.println(circle);*/
			JSONObject jsonObjectcircle = JSON.parseObject(circle);
			JSONObject data = (JSONObject) jsonObject.get("data");
		/*	System.out.println(data);*/
			JSONArray psnjob = data.getJSONArray("psnjob");	
	   	    List<hi_psnjob> hi_psnjob = new ArrayList<hi_psnjob>();
			/*System.out.println(psnjob);*/
			if(psnjob!=null||psnjob.size()!=0){ 
				for(int i=0;i<psnjob.size();i++){ 
					JSONObject jo = (JSONObject)psnjob.getJSONObject(i);
					hi_psnjob hij=new hi_psnjob();
					String jobmode = jo.getString("jobmode");
					hij.setJOBMODE(jobmode);
					String memo = jo.getString("memo");
					hij.setMEMO(memo);
					String oribilltype = jo.getString("oribilltype");
					hij.setORIBILLTYPE(oribilltype);
					String oribillpk = jo.getString("oribillpk");
					hij.setORIBILLPK(oribillpk);
					String occupation = jo.getString("occupation");
					hij.setOCCUPATION(occupation);
					        String lastflag = jo.getString("lastflag");
					        hij.setLASTFLAG(lastflag);
					        
					        int psntype=0;
					        if(jo.getString("psntype")!=null){
					         psntype=Integer.parseInt(jo.getString("psntype"));	
					        }
					        
							String pk_dept = jo.getString("pk_dept");
					        hij.setPK_DEPT(pk_dept);
							String jobglbdef1 = jo.getString("jobglbdef1");
					        hij.setJOBGLBDEF1(jobglbdef1);
							String jobglbdef2 = jo.getString("jobglbdef2");
					        hij.setJOBGLBDEF2(jobglbdef2);
							String dr = jo.getString("dr");
					        hij.setDR(dr);
							String jobglbdef4 = jo.getString("jobglbdef4");
					        hij.setJOBGLBDEF4(jobglbdef4);
							String jobglbdef5 = jo.getString("jobglbdef5");
					        hij.setJOBGLBDEF5(jobglbdef5);
							String recordnum = jo.getString("recordnum");
					        hij.setRECORDNUM(recordnum);
							String modifiedtime = jo.getString("modifiedtime");
					        hij.setMODIFIEDTIME(modifiedtime);
							String pk_org = jo.getString("pk_org");
					        hij.setPK_ORG(pk_org);
							String assgid = jo.getString("assgid");
					        hij.setASSGID(assgid);
							String creationtime = jo.getString("creationtime");
					        hij.setCREATIONTIME(creationtime);
							String creator = jo.getString("creator");
					        hij.setCREATOR(creator);
							String pk_psncl = jo.getString("pk_psncl");
					        hij.setPK_PSNCL(pk_psncl);
					        
					        int trnsevent=0;
					        if(jo.getString("trnsevent")!=null) {
					        trnsevent=Integer.parseInt(jo.getString("trnsevent"));
					        }
					        
							String pk_group = jo.getString("pk_group");
					        hij.setPK_GROUP(pk_group);
							String rn = jo.getString("rn");
					        hij.setRN(rn);
							String clerkcode = jo.getString("clerkcode");
							hij.setCLERKCODE(clerkcode);
							String endflag = jo.getString("endflag");
							hij.setENDFLAG(endflag);
							String trnsreason = jo.getString("trnsreason");
							hij.setTRNSREASON(trnsreason);
							String pk_psndoc = jo.getString("pk_psndoc");
							hij.setPK_PSNDOC(pk_psndoc);
							String pk_hrorg = jo.getString("pk_hrorg");
							hij.setPK_HRORG(pk_hrorg);
							String pk_psnjob = jo.getString("pk_psnjob");
							hij.setPK_PSNJOB(pk_psnjob);
							String modifier = jo.getString("modifier");
							hij.setMODIFIER(modifier);
							String begindate = jo.getString("begindate");
							hij.setBEGINDATE(begindate);
							String pk_postseries = jo.getString("pk_postseries");
							hij.setPK_POSTSERIES(pk_postseries);
							String pk_post = jo.getString("pk_post");
							hij.setPK_POST(pk_post);
							String showorder = jo.getString("showorder");
							hij.setSHOWORDER(showorder);
							String pk_hrgroup = jo.getString("pk_hrgroup");
							hij.setPK_HRGROUP(pk_hrgroup);
							String poststat = jo.getString("poststat");
							hij.setPOSTSTAT(poststat);
							String trial_flag = jo.getString("trial_flag");
							hij.setTRIAL_FLAG(trial_flag);
							String ismainjob = jo.getString("ismainjob");
							hij.setISMAINJOB(ismainjob);
							String pk_psnorg = jo.getString("pk_psnorg");
							hij.setPK_PSNORG(pk_psnorg);
							String trnstype = jo.getString("trnstype");
							hij.setTRNSTYPE(trnstype);
							String ts = jo.getString("ts");
							hij.setTS(ts);
							String pk_dept_v = jo.getString("pk_dept_v");
							hij.setPK_DEPT_V(pk_dept_v);
							String pk_job = jo.getString("pk_job");
							hij.setPK_JOB(pk_job);
							String pk_job_type = jo.getString("pk_job_type");
							hij.setPK_JOB_TYPE(pk_job_type);
							String pk_jobrank = jo.getString("pk_jobrank");
							hij.setPK_JOBRANK(pk_jobrank);
							String series =jo.getString("series");
							hij.setSERIES(series);
							String jobglbdef3 = jo.getString("jobglbdef3");
							hij.setJOBGLBDEF3(jobglbdef3);
							String jobglbdef6 = jo.getString("jobglbdef6");
							hij.setJOBGLBDEF6(jobglbdef6);
							String pk_org_v = jo.getString("pk_org_v");
							hij.setPK_ORG_V(pk_org_v);
							String jobglbdef8 = jo.getString("jobglbdef8");
							hij.setJOBGLBDEF8(jobglbdef8);
							String jobglbdef9 = jo.getString("jobglbdef9");
							hij.setJOBGLBDEF9(jobglbdef9);
							String jobglbdef7 = jo.getString("jobglbdef7");
							hij.setJOBGLBDEF7(jobglbdef7);
							String jobglbdef10 = jo.getString("jobglbdef10");
							hij.setJOBGLBDEF10(jobglbdef10);
							String jobglbdef11 = jo.getString("jobglbdef11");
							hij.setJOBGLBDEF11(jobglbdef11);
							
							int dataoriginflag=0;
							if(jo.getString("dataoriginflag")!=null){
							dataoriginflag =Integer.parseInt(jo.getString("dataoriginflag"));
							}
							
							hij.setDATAORIGINFLAG(dataoriginflag);
							
							String deposemode = jo.getString("deposemode");
							hij.setDEPOSEMODE(deposemode);
							String enddate = jo.getString("enddate");
							hij.setENDDATE(enddate);
					hi_psnjob.add(hij);	
					hij=null;
  					System.gc();
				
				 }
				}
			       hipsnjobService.insertOrUpdate(hi_psnjob);
			       hi_psnjob = null;
				   System.gc();
			}
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
 	
}
