2b4cf8b6b8c6149939786c5267fc03fcc47b3d60.svn-base 5.74 KB
package com.thinkgem.jeesite.modules.title.service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.thinkgem.jeesite.common.utils.JsonUtil;
import com.thinkgem.jeesite.modules.reg.entity.base.RegBaseSllm;
import com.thinkgem.jeesite.modules.reg.entity.base.RegBaseZdjbxx;
import com.thinkgem.jeesite.modules.reg.entity.qjxt.ZdK103;
import com.thinkgem.jeesite.modules.reg.service.base.RegBaseSllmService;
import com.thinkgem.jeesite.modules.reg.service.base.RegBaseZdjbxxService;
import com.thinkgem.jeesite.modules.reg.service.qjxt.ZdK103Service;
import com.thinkgem.jeesite.modules.sys.utils.DictUtils;
import com.thinkgem.jeesite.modules.title.buss.RemoteBuss;
import com.thinkgem.jeesite.modules.title.po.Zdxx;

@Service
public class ZdxxService {
	@Autowired
	private RemoteBuss buss;
	@Autowired
	private RegBaseZdjbxxService service;
	@Autowired
	private ZdK103Service zbService;
	@Autowired
	private RegBaseSllmService sllmService;

	@Transactional(readOnly=false)
	public void synZdjbxx() throws Exception {
		Map map = buss.getZdxx();
		ObjectMapper mapper = new ObjectMapper();
		String kkk = JsonUtil.toJsonString(map.get("zdlist"));
		List<Zdxx> list = mapper.readValue(kkk, new TypeReference<List<Zdxx>>() {});
		if(list.size()>0){
		  for(int i =0;i<list.size();i++) {
		    RegBaseZdjbxx zdjbxx = new RegBaseZdjbxx();
		    Zdxx dto = list.get(i);
		    zdjbxx.setBdcdyh(dto.getBdcdyh());
		    List<RegBaseZdjbxx> zdlist = service.findListqj(zdjbxx);
		    zdjbxx.setIslogout("3");//权籍新传递的宗地,可首次登记
		    zdjbxx.setIsaudit("1");
		    zdjbxx.setIschafeng("0");
		    zdjbxx.setIsdiya("0");
		    zdjbxx.setIsyiyi("0");
		    if(zdlist.size()>0) {
		    	zdjbxx = zdlist.get(0);
		    }
		    zdjbxx.setQllx(dto.getQllx());
		    zdjbxx.setQlxz(dto.getQlxz());
		    zdjbxx.setZl(dto.getTdzl());
		    zdjbxx.setQlsdfs(dto.getQlsdfs());
		    zdjbxx.setZdtzm(dto.getZdtzm());
		    zdjbxx.setZddm(dto.getZddm());
		    zdjbxx.setSeachprov(dto.getZddm().substring(0, 6));
		    zdjbxx.setSeachcity(dto.getZddm().substring(0, 9));
		    zdjbxx.setSeachdistrict(dto.getZddm().substring(0,12));
		    zdjbxx.setZdszd(dto.getDz());
		    zdjbxx.setZdszx(dto.getXz());
		    zdjbxx.setYt(DictUtils.getDictLabel(dto.getTdyt(), "reg_bus_tdyt", ""));
		    zdjbxx.setYtmc(DictUtils.getDictLabel(dto.getTdyt(), "reg_bus_tdyt", ""));
		    zdjbxx.setMjdw(dto.getMjdw());
		    zdjbxx.setZdszn(dto.getNz());
		    zdjbxx.setZdszb(dto.getBz());
		    if(dto.getBdcdyh().indexOf("L") != -1) {
				 zdjbxx.setZdmj(dto.getLdmj()==null?0:dto.getLdmj());
		    }else {
			 zdjbxx.setZdmj(dto.getZdmj()==null?0:dto.getZdmj().setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
	
		    }
		    zdjbxx.setDj(dto.getDj());
		    zdjbxx.setJg(dto.getJg()==null?0:Double.parseDouble(dto.getJg().toString()));
		    zdjbxx.setTfh(dto.getTfh());
		    zdjbxx.setRjl(dto.getJzrjl()==null?"":dto.getJzrjl().toString());
		    zdjbxx.setJzmd(dto.getJzmd()==null?"":dto.getJzmd().toString());
		    zdjbxx.setJzxg(dto.getJzxg()==null?"":dto.getJzxg().toString());
		    zdjbxx.setQlrxm(dto.getQlr());
		    zdjbxx.setZjlx(dto.getZjzl());
		    zdjbxx.setSfzh(dto.getZjhm());
		    zdjbxx.setTdsyqdm(dto.getSyqlx());
		    if(dto.getZt().equals("1")) {
		    	zdjbxx.setDelFlag("0");
		    	ZdK103 zbold = new ZdK103();
		    	zbold.setBdcdyh(zbold.getBdcdyh());
				//传递的是不动产单元号,会一并删除,因此不用重复进行循环删除操作
				zbService.delete(zbold);
		    	Map zbmap = buss.getZbxx(zdjbxx.getBdcdyh());
		    	String zb = JsonUtil.toJsonString(zbmap.get("list"));
				List<ZdK103> zblist = mapper.readValue(zb, new TypeReference<List<ZdK103>>() {});
				if(zblist.size()>0) {
					for(int j =0;j<zblist.size();j++) {
						ZdK103 k = new ZdK103();
						ZdK103 zbk = zblist.get(j);
						k.setBdcdyh(zbk.getBdcdyh());
						k.setXh(zbk.getXh());
						k.setXzb(zbk.getXzb());
						k.setYzb(zbk.getYzb());
						k.setZdx(zbk.getZdx());
						zbService.save(k);
					}
				}
				service.saveObject(zdjbxx);
		    }else {
		    	service.deleteqj(zdjbxx);
		    }
		    //林地时需要插入其他表,同时修改zdjbxx某些信息,且不影响之前同步
		    if(dto.getBdcdyh().indexOf("L") != -1) {
		    	RegBaseSllm sllm = new RegBaseSllm();
		    	sllm.setBdcdyh(dto.getBdcdyh());
		    	List<RegBaseSllm> sllmlist = sllmService.findListqj(sllm);
		    	sllm.setIsaudit("1");
		    	sllm.setIschafeng("0");
		    	sllm.setIsdiya("0");
		    	sllm.setIslogout("0");
		    	sllm.setIsyiyi("0");
		    	if(sllmlist.size()>0) {
		    		sllm = sllmlist.get(0);
		    	}
		    	sllm.setZysz(dto.getZysz());
		    	sllm.setZs(Integer.parseInt(dto.getZs()));
		    	sllm.setZlnd(Integer.parseInt(dto.getZlnd()));
		    	sllm.setZl(dto.getTdzl());
		    	sllm.setZdid(zdjbxx.getId());
		    	sllm.setZddm(dto.getZddm());
		    	sllm.setYt(dto.getTdyt());
		    	sllm.setXdm(dto.getXdm());
		    	sllm.setXb(dto.getXb());
		    	sllm.setSyqmj(dto.getLdmj());
		    	sllm.setQy(dto.getQy());
		    	sllm.setQlxz(dto.getQlxz());
		    	sllm.setQllx(dto.getQllx());
		    	sllm.setLb(dto.getLb());
		    	//sllm.setLdsyqxz();
		    	sllm.setLmbm(dto.getBdcdyh().substring(19, 24));
		    	sllm.setLz(dto.getLz());
		    	sllm.setYsdm("");
		    	//数据有效状态下执行,
		    	if(dto.getZt().equals("1")) {
		    		sllm.setDelFlag("0");
		    		sllmService.save(sllm);
		    	}else {
		    		sllmService.deleteqj(sllm);
		    	}
		    }
		  }
	}
	}

}