package com.ycsoft.sysmanager.component.system;
import java.util.List;
import org.springframework.stereotype.Component;
import com.ycsoft.beans.config.TTabDefine;
import com.ycsoft.beans.system.SItemDefine;
import com.ycsoft.beans.system.SItemvalue;
import com.ycsoft.business.dao.config.TAddressDao;
import com.ycsoft.business.dao.config.TBusiCodeDao;
import com.ycsoft.business.dao.config.TTabDefineDao;
import com.ycsoft.business.dao.system.SItemDefineDao;
import com.ycsoft.business.dao.system.SItemvalueDao;
import com.ycsoft.business.dto.config.TAddressDto;
import com.ycsoft.commons.abstracts.BaseComponent;
import com.ycsoft.commons.constants.StatusConstants;
import com.ycsoft.commons.exception.ComponentException;
import com.ycsoft.commons.helper.StringHelper;
import com.ycsoft.daos.core.JDBCException;
import com.ycsoft.daos.core.Pager;
@Component
public class ParamComponent extends BaseComponent {
private TBusiCodeDao tBusiCodeDao;
private SItemvalueDao sItemvalueDao;
private TAddressDao tAddressDao;
private SItemDefineDao sItemDefineDao;
private TTabDefineDao tTabDefineDao;
/**
* 查询参数定义
* @return
* @throws Exception
*/
public List<SItemDefine> queryItemDefines(String query) throws JDBCException {
return sItemDefineDao.findAllDefines(query);
}
/**
* 查询参数定义
* @return
* @throws Exception
*/
public SItemDefine queryItemDefineForChangeInfo(String item_key) throws JDBCException {
return sItemDefineDao.findByKey(item_key);
}
/**
* 字段名参数查询
* @param start
* @param limit
* @param query
* @return
* @throws Exception
*/
public Pager<TTabDefine> queryTabDefine(Integer start, Integer limit,String query) throws Exception {
return tTabDefineDao.queryTabDefine(start, limit,query);
}
/**
* 查询参数配置
* @return
* @throws Exception
*/
public List<SItemvalue> queryItemValues(String itemKey) throws JDBCException {
return sItemvalueDao.queryByKey(itemKey);
}
/**
* 保存一条参数定义
* @return
* @throws JDBCException
* @throws Exception
*/
public void saveItemDefine(SItemDefine itemDefine) throws JDBCException {
if(sItemDefineDao.findByKey(itemDefine.getItem_key()) != null){
sItemDefineDao.update(itemDefine);
}else{
sItemDefineDao.save(itemDefine);
}
}
/**
* 保存修改字段名配置
* @param tabDefine
* @param oldTableName
* @param oldColumnName
* @throws Exception
*/
public void saveTabDefine(TTabDefine tabDefine,String oldTableName,String oldColumnName) throws Exception {
if(StringHelper.isNotEmpty(oldTableName)&& StringHelper.isNotEmpty(oldColumnName)){//修改
deleteTabDefine(oldTableName,oldColumnName);//失效原先的配置
tabDefine.setOld_data(oldTableName+","+oldColumnName);//新配置记录原先的配置
}else{
TTabDefine dto = tTabDefineDao.queryTab(tabDefine.getTable_name(),tabDefine.getColumn_name());
if(dto!=null){
throw new ComponentException("已经存在该表名与字段名的配置! ");
}
}
tabDefine.setStatus(StatusConstants.ACTIVE);
tTabDefineDao.save(tabDefine); //新增修改后配置
}
/**
* 删除字段名配置
* @param oldTableName
* @param oldColumnName
* @throws Exception
*/
public void deleteTabDefine(String oldTableName,String oldColumnName) throws Exception {
tTabDefineDao.updateInvalid(oldTableName,oldColumnName);//失效原先的配置
}
/**
* 删除一条参数定义
* @param itemKey
* @throws JDBCException
*/
public void deleteItemDefine(String itemKey) throws JDBCException{
sItemDefineDao.remove(itemKey);
}
public void saveItemValues(List<SItemvalue> valueList,String itemKey) throws JDBCException {
sItemvalueDao.deleteByKey(itemKey);
if(valueList != null && valueList.size() > 0){
sItemvalueDao.save(valueList.toArray(new SItemvalue[valueList.size()]));
}
}
public List<SItemvalue> findAllKey() throws JDBCException{
return sItemvalueDao.findAllKey();
}
public List<TAddressDto> findAllAddress(String qName,String county_id) throws Exception {
return tAddressDao.queryActiveAddrByName(qName, county_id, " 1=1 ");
}
public TBusiCodeDao getTBusiCodeDao() {
return tBusiCodeDao;
}
public void setTBusiCodeDao(TBusiCodeDao busiCodeDao) {
tBusiCodeDao = busiCodeDao;
}
public SItemvalueDao getSItemvalueDao() {
return sItemvalueDao;
}
public void setSItemvalueDao(SItemvalueDao itemvalueDao) {
sItemvalueDao = itemvalueDao;
}
public void setTAddressDao(TAddressDao addressDao) {
tAddressDao = addressDao;
}
public SItemDefineDao getSItemDefineDao() {
return sItemDefineDao;
}
public void setSItemDefineDao(SItemDefineDao itemDefineDao) {
sItemDefineDao = itemDefineDao;
}
public TTabDefineDao getTTabDefineDao() {
return tTabDefineDao;
}
public void setTTabDefineDao(TTabDefineDao tabDefineDao) {
tTabDefineDao = tabDefineDao;
}
}