diff --git a/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/api/Api1DictionaryTypeController.java b/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/api/Api1DictionaryTypeController.java
index e88001b..1162664 100644
--- a/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/api/Api1DictionaryTypeController.java
+++ b/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/api/Api1DictionaryTypeController.java
@@ -1,29 +1,37 @@
 package com.supwisdom.leaveschool.basicsdata.api;
 
+import java.util.Date;
+import java.util.Map;
+
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.util.MimeTypeUtils;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseStatus;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.supwisdom.leaveschool.basicsdata.domain.DictionaryType;
+import com.supwisdom.leaveschool.basicsdata.model.Api1DictionaryTypeControllerModel;
 import com.supwisdom.leaveschool.basicsdata.repository.DictionaryTypeRepository;
 import com.supwisdom.leaveschool.common.model.PageModel;
 import com.supwisdom.leaveschool.common.model.PagerRequestModel;
-import com.supwisdom.leaveschool.common.model.PagerResponseModel;
+import com.supwisdom.leaveschool.common.model.SuccessResponseModel;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 
 @RestController
 @RequestMapping("/api/v1/basics-data/dictionary-types")
 @Api(value="字典表类型操作",tags={"字典表类型的操作接口"})
-public class Api1DictionaryTypeController {
+public class Api1DictionaryTypeController extends Api1DictionaryTypeControllerModel {
 
   @Autowired
   private DictionaryTypeRepository dictionaryTypeRepository;
@@ -45,6 +53,38 @@
 	  }
 	  
 	  
+	  @GetMapping(path="/search",produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+	  @ResponseStatus(value = HttpStatus.OK)
+	  @ApiOperation(value="获取字典表类型列表2",notes="根据查询条件获取字典表类型列表2")
+	  @ApiImplicitParams({
+	      @ApiImplicitParam(name = "pageIndex", value = "当前第页数，默认0，为第一页", dataType = "integer",defaultValue="0", paramType="query"),
+	      @ApiImplicitParam(name = "pageSize", value = "每页条数，默认20",  dataType = "integer",defaultValue="20", paramType="query"),
+	      @ApiImplicitParam(name = "name", value = "类型码或名称", dataType = "string",  defaultValue = "",paramType="query")
+	  })
+	  public Object list2(@ApiParam(hidden=true) @RequestParam Map map) {
+		    return new PageModel();
+		  }
+	  
+	  @PostMapping(consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+	  @ResponseStatus(value = HttpStatus.OK)
+	  @ApiOperation(value="新增字典表类型",notes="新增字典表类型")
+	  @ApiImplicitParams({
+	      @ApiImplicitParam(name = "username", value = "用户名", dataType = "string", paramType="query"),
+	      @ApiImplicitParam(name = "dictionaryTypeModel", value = "字典表类型", dataType = "DictionaryTypeModel", paramType="body"),
+	  })
+	  public SuccessResponseModel create(String username,@RequestBody DictionaryTypeModel dictionaryTypeModel) {
+		  DictionaryType dictionaryType = new DictionaryType();
+		  BeanUtils.copyProperties(dictionaryTypeModel, dictionaryType);
+		  dictionaryType.setAddAccount(username);
+		  dictionaryType.setAddTime(new Date());
+		  dictionaryTypeRepository.save(dictionaryType);
+	      SuccessResponseModel res = new SuccessResponseModel();
+	      res.setSuccess("info.create.success");
+	    return res;
+	  }
+	  
+	  
+	  
 //	  @GetMapping(path="/search", produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
 //	  @ResponseStatus(value = HttpStatus.OK)
 //	  @ApiOperation(value="获取字典表类型列表",notes="根据查询条件获取字典表类型列表")
diff --git a/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/domain/DictionaryType.java b/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/domain/DictionaryType.java
index 4258939..7c41d37 100644
--- a/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/domain/DictionaryType.java
+++ b/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/domain/DictionaryType.java
@@ -71,6 +71,14 @@
 	public void setEnabled(boolean enabled) {
 		this.enabled = enabled;
 	}
+
+	public Integer getSort() {
+		return sort;
+	}
+
+	public void setSort(Integer sort) {
+		this.sort = sort;
+	}
   
   
 
diff --git a/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/repository/DictionaryTypeRepository.java b/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/repository/DictionaryTypeRepository.java
index 87e9292..6100beb 100644
--- a/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/repository/DictionaryTypeRepository.java
+++ b/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/repository/DictionaryTypeRepository.java
@@ -23,9 +23,11 @@
 					params.put("or name like ? ","%"+name+"%");
 				}
 				name="%"+name+"%";
-				String sql =  "select * from TB_B_DICTIONARY_TYPE where upper(code) like ?1 or name like ?2";
-				return this.getScrollSqlData(DictionaryType.class, pageIndex, pageSize, sql, name,name);
+				String sql =  "select * from TB_B_DICTIONARY_TYPE where deleted=0 and upper(code) like ?1 or name like ?1";
+				return this.getScrollSqlData(DictionaryType.class, pageIndex, pageSize, sql, name);
 		}
+		
+		
 
 
 }
diff --git a/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/SimpleBaseDao.java b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/SimpleBaseDao.java
index 5c1ca00..ac36051 100644
--- a/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/SimpleBaseDao.java
+++ b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/SimpleBaseDao.java
@@ -1,10 +1,13 @@
 package com.supwisdom.leaveschool.common.repository;
 
 import java.util.List;
+import java.util.Map;
 
 import javax.persistence.EntityManager;
 import javax.persistence.Query;
 
+import org.hibernate.SQLQuery;
+import org.hibernate.transform.Transformers;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
@@ -37,6 +40,11 @@
 	private <T> List<T> getScrollDataList(Class<T> entityType,String sql,int pageIndex,int pageSize,Object... params) {
 		try {
 			Query query = this.entityManager.createNativeQuery(sql);
+			if(Map.class.isAssignableFrom(entityType)){
+				query = this.entityManager.createNativeQuery(sql).unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); 
+			}else{
+				 query = this.entityManager.createNativeQuery(sql,entityType);
+			}
 			if(pageIndex!=-1 && pageSize!=-1){
 				if(pageIndex<=1) pageIndex=1;
 				query.setFirstResult(pageSize*(pageIndex-1));
@@ -75,4 +83,21 @@
 			}
 		}
 	}
+	
+	 @Transactional
+	  public void save(Object entity){
+		 entityManager.persist(entity);
+	  }
+	 
+	 @Transactional
+	 public void update(Object entity){
+		 entityManager.merge(entity);
+	 }
+	 
+	 @Transactional
+	 public void delete(Object entity){
+		 entityManager.remove(entity);
+	 }
+	
+	
 }
