package com.zjrs.zwnw.rlzysc.bpo.impl;

import org.apache.commons.lang.StringUtils;
import org.mohrss.leaf.core.framework.domain.bpo.impl.BPOImpl;
import org.mohrss.leaf.core.framework.util.CurrentUser;
import org.mohrss.leaf.core.framework.util.SecurityUtils;
import com.zjrs.zwnw.jbxxgl.dto.AreaDTO;
import com.zjrs.zwnw.jbxxgl.po.VSAb01PO;
import com.zjrs.zwnw.jbxxgl.po.VSAc01PO;
import com.zjrs.zwnw.portal.dto.common.CommonDictDTO;
import com.zjrs.zwnw.rlzysc.blo.RlzyScCommonBLO;
import com.zjrs.zwnw.rlzysc.bpo.RlzyScCommonBPO;
import com.zjrs.zwnw.rlzysc.po.RsGgfwUserPO;
import org.springframework.stereotype.Service;

import jakarta.annotation.Resource;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;

@Service
public class RlzyScCommonBPOimpl extends BPOImpl implements RlzyScCommonBPO {

    @Resource
    private RlzyScCommonBLO rlzyScCommonBLO;

    @Override
    public List<Object> getZyTree(AreaDTO dto) {
        return null;
    }

    @Override
    public Map<String, Object> getDicts(CommonDictDTO dto) {
        return rlzyScCommonBLO.getDicts(dto);
    }
    
    @Override
    public RsGgfwUserPO getUseridForGr(String xm, String zjlx, String zjhm) {
    	DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    	String czsj = LocalDateTime.now().format(formatters);//获取当前时间
    	CurrentUser cUser = SecurityUtils.getCurrentUser();//当前用户
    	//查询基本信息是否存在记录
    	VSAc01PO vSAc01PO = rlzyScCommonBLO.getAc01(zjlx, zjhm);
    	if(vSAc01PO == null) {
    		DateTimeFormatter tsFormatters = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
        	String aae036 = LocalDateTime.now().format(tsFormatters);//获取当前时间
    		vSAc01PO = new VSAc01PO();
    		vSAc01PO.setAac003(xm);
    		vSAc01PO.setAac058(zjlx);
    		vSAc01PO.setAac147(zjhm);
    		vSAc01PO.setLy("2");//来源：本地创建
    		vSAc01PO.setAae036(Long.parseLong(aae036));//经办时间
    		vSAc01PO.setBae001("440800");
    		vSAc01PO.setBae002(cUser.getUserid());
    		vSAc01PO.setBae003(czsj);
    		vSAc01PO.setBae004(cUser.getUserid());
    		vSAc01PO.setBae005(czsj);
    		rlzyScCommonBLO.saveAc01(vSAc01PO);
    	}
    	
    	RsGgfwUserPO rsGgfwUserPO = rlzyScCommonBLO.getGgfwUser(vSAc01PO.getZtid(), "1", zjlx, zjhm);
		if(rsGgfwUserPO == null) {
			rsGgfwUserPO = new RsGgfwUserPO();
			rsGgfwUserPO.setZtid(vSAc01PO.getZtid());
			rsGgfwUserPO.setMc(xm);
			rsGgfwUserPO.setZjlx(zjlx);
			rsGgfwUserPO.setZjhm(zjhm);
			rsGgfwUserPO.setFwdx("1");
			rsGgfwUserPO.setCjsj(czsj);
			rlzyScCommonBLO.saveGgfwUser(rsGgfwUserPO);
		}else if(StringUtils.isBlank(rsGgfwUserPO.getZtid())) {
			//若未关联基本信息  则建立关联
			rsGgfwUserPO.setZtid(vSAc01PO.getZtid());
			rlzyScCommonBLO.saveGgfwUser(rsGgfwUserPO);
		}
    	return rsGgfwUserPO;
    }
    
    @Override
    public RsGgfwUserPO getUseridForDw(String dwmc, String tyshxydm) {
    	DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    	String czsj = LocalDateTime.now().format(formatters);//获取当前时间
    	CurrentUser cUser = SecurityUtils.getCurrentUser();//当前用户
    	//查询基本信息是否存在记录
    	VSAb01PO vSAb01PO = rlzyScCommonBLO.getAb01(dwmc, tyshxydm);
    	if(vSAb01PO == null) {
    		DateTimeFormatter tsFormatters = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
        	String aae036 = LocalDateTime.now().format(tsFormatters);//获取当前时间
    		vSAb01PO = new VSAb01PO();
    		vSAb01PO.setAab998(tyshxydm);
    		vSAb01PO.setAab004(dwmc);
    		vSAb01PO.setLy("2");//来源：本地创建
    		vSAb01PO.setAae036(Long.parseLong(aae036));//经办时间
    		vSAb01PO.setBae001("440800");
    		vSAb01PO.setBae002(cUser.getUserid());
    		vSAb01PO.setBae003(czsj);
    		vSAb01PO.setBae004(cUser.getUserid());
    		vSAb01PO.setBae005(czsj);
    		rlzyScCommonBLO.saveAb01(vSAb01PO);
    	}
    	
    	RsGgfwUserPO rsGgfwUserPO = rlzyScCommonBLO.getGgfwUser(vSAb01PO.getZtid(), "2", "", tyshxydm);
		if(rsGgfwUserPO == null) {
			rsGgfwUserPO = new RsGgfwUserPO();
			rsGgfwUserPO.setZtid(vSAb01PO.getZtid());
			rsGgfwUserPO.setMc(dwmc);
			rsGgfwUserPO.setZjhm(tyshxydm);
			rsGgfwUserPO.setFwdx("2");
			rsGgfwUserPO.setCjsj(czsj);
			rlzyScCommonBLO.saveGgfwUser(rsGgfwUserPO);
		}else if(StringUtils.isBlank(rsGgfwUserPO.getZtid())) {
			//若未关联基本信息  则建立关联
			rsGgfwUserPO.setZtid(vSAb01PO.getZtid());
			rlzyScCommonBLO.saveGgfwUser(rsGgfwUserPO);
		}
    	return rsGgfwUserPO;
    }
}
