| 
					
				 | 
			
			
				@ -0,0 +1,216 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.base.service.dict; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.fasterxml.jackson.databind.ObjectMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.base.dao.dict.BusinessSysDictDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.care.common.BusinessSysDictDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.web.Envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.web.MixEnvelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.utils.hibernate.HibenateUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.mysql.query.BaseJpaService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Created with IntelliJ IDEA. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * @Author: yeshijie 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * @Date: 2021/5/10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * @Description: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class BusinessSysDictService extends BaseJpaService<BusinessSysDictDO, BusinessSysDictDao> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private HibenateUtils hibenateUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private ObjectMapper objectMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BusinessSysDictDao businessSysDictDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    //根据id修改或新增字典 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public BusinessSysDictDO updateOrCreateDict(String json) throws  Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BusinessSysDictDO  businessSysDictDO = objectMapper.readValue(json, BusinessSysDictDO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String modelName = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(businessSysDictDO.getDictName())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<BusinessSysDictDO> modelNameList=businessSysDictDao.findByDictName(businessSysDictDO.getDictName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (modelNameList!=null&&modelNameList.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                modelName= modelNameList.get(0).getModelName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        businessSysDictDO.setModelName(modelName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNoneBlank(businessSysDictDO.getId())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BusinessSysDictDO businessSysDictDO1 = businessSysDictDao.findOne(businessSysDictDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (businessSysDictDO1!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDO1.setDictValue(businessSysDictDO.getDictValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDO1.setDictCode(businessSysDictDO.getDictCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDO1.setDictName(businessSysDictDO.getDictName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDO1.setPyCode(businessSysDictDO.getPyCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDO1.setImgUrl(businessSysDictDO.getImgUrl()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDO1.setSort(businessSysDictDO.getSort()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDO1.setModelName(modelName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDO1 = new BusinessSysDictDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDO1.setDictValue(businessSysDictDO.getDictValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDO1.setDictCode(businessSysDictDO.getDictCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDO1.setDictName(businessSysDictDO.getDictName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDO1.setPyCode(businessSysDictDO.getPyCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDO1.setImgUrl(businessSysDictDO.getImgUrl()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDO1.setSort(businessSysDictDO.getSort()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDO1.setModelName(modelName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return businessSysDictDao.save(businessSysDictDO1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return businessSysDictDao.save(businessSysDictDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    //根据id删除字典 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String  deleteDictById(String id){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String msg = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(id)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BusinessSysDictDO businessSysDictDO = businessSysDictDao.findOne(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (businessSysDictDO!=null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDao.delete(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                msg = "删除成功"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                msg = "没有这条记录"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            msg = "id为空"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return msg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    //查字典 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public MixEnvelop findDictsByNameCode(String modelName,String name,String code,String value,Integer page ,Integer pageSize){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String  sql = "select t.id as \"id\"," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " t.dict_name  as \"dictName\","+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " t.model_name  as \"modelName\","+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " t.dict_code  as \"dictCode\","+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " t.dict_value   as \"dictValue\","+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " t.sort   as \"sort\","+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " t.py_code  as \"pyCode\","+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " t.img_url  as \"imgUrl\","+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " t.create_time as \"createTime\""+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " from base_business_sys_dict t where 1=1 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(name)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql+=" and t.dict_name like '%"+name+"%'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(modelName)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql+=" and t.model_name like '%"+modelName+"%'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(code)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql+=" and t.dict_code like '%"+code+"%'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(value)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql+=" and t.dict_value like '%"+value+"%'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql+=" and t.dict_code is not null and  t.dict_code != ''"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (page==null||page==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            MixEnvelop mixEnvelop = new MixEnvelop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            mixEnvelop.setTotalCount(list==null?0:list.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            mixEnvelop.setDetailModelList(list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return  mixEnvelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,page,pageSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String,Object>> listCount = hibenateUtils.createSQLQuery(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            MixEnvelop mixEnvelop = new MixEnvelop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            mixEnvelop.setTotalCount(listCount==null?0:listCount.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            mixEnvelop.setCurrPage(page); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            mixEnvelop.setPageSize(pageSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            mixEnvelop.setDetailModelList(list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return  mixEnvelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    //查字典 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public MixEnvelop findModel(String modelName, String name, Integer page , Integer pageSize){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        MixEnvelop mixEnvelop = new MixEnvelop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String  sql = "select " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " t.dict_name  as \"dictName\","+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " t.model_name  as \"modelName\""+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " from base_business_sys_dict t where 1=1 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(name)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql+=" and t.dict_name like '%"+name+"%'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(modelName)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql+=" and t.model_name like '%"+modelName+"%'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql+=" group by t.dict_name,t.model_name "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,page,pageSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> listCount = hibenateUtils.createSQLQuery(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (listCount!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            mixEnvelop.setTotalCount(listCount.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            mixEnvelop.setTotalCount(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        mixEnvelop.setDetailModelList(list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        mixEnvelop.setCurrPage(page); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        mixEnvelop.setPageSize(pageSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return  mixEnvelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Envelop updateByModelName(String jsonData) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Envelop envelop = new Envelop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject jsonObject = JSONObject.parseObject(jsonData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(jsonObject.getString("preDictName"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String preDictName = jsonObject.get("preDictName").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<BusinessSysDictDO> list  =  businessSysDictDao.findByDictName(preDictName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (BusinessSysDictDO sysDictDO:list){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (jsonObject.get("dictName")!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    sysDictDO.setDictName(jsonObject.get("dictName").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (jsonObject.get("modelName")!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    sysDictDO.setModelName(jsonObject.get("modelName").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            businessSysDictDao.save(list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            envelop.setMessage("操作成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            envelop.setStatus(200); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (jsonObject.get("dictName")!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<BusinessSysDictDO> list  =  businessSysDictDao.findByDictName(jsonObject.get("dictName").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (list!=null&&list.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    throw new Exception("该dictName已经存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    BusinessSysDictDO sysDictDO=new BusinessSysDictDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    sysDictDO.setDictName(jsonObject.get("dictName").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (jsonObject.get("modelName")!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        sysDictDO.setModelName(jsonObject.get("modelName").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    businessSysDictDao.save(sysDictDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                envelop.setMessage("操作成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                envelop.setStatus(200); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                envelop.setMessage("dictName为空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                envelop.setStatus(-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Envelop deleteByModelName(String preDictName){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Envelop envelop = new Envelop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(preDictName)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<BusinessSysDictDO> list  =  businessSysDictDao.findByDictName(preDictName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (BusinessSysDictDO sysDictDO:list){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                businessSysDictDao.delete(sysDictDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            envelop.setMessage("操作成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            envelop.setStatus(200); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            envelop.setMessage("preDictName为空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            envelop.setStatus(-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |