DictionaryItemService.java 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. package platform.common.base.service;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.*;
  5. import org.apache.commons.lang3.StringUtils;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Service;
  8. import org.springframework.transaction.annotation.Transactional;
  9. import com.github.pagehelper.PageHelper;
  10. import com.github.pagehelper.PageInfo;
  11. import platform.common.Constant;
  12. import platform.common.base.dao.DictionaryItemDao;
  13. import platform.common.base.model.DictionaryItem;
  14. import platform.common.base.model.DictionaryType;
  15. import platform.common.util.DateUtil;
  16. import platform.common.util.WebUtil;
  17. import platform.modules.build.entity.ContractProperty;
  18. import tk.mybatis.mapper.entity.Example;
  19. @Service
  20. @Transactional
  21. public class DictionaryItemService extends BaseService<DictionaryItem> {
  22. @Autowired
  23. private DictionaryItemDao dictionaryItemDao;
  24. @Autowired
  25. private DictionaryTypeService dictionaryTypeService;
  26. public PageInfo<DictionaryItem> findPage(Integer pageNum, Integer pageSize, String keyword) {
  27. Example example = new Example(DictionaryItem.class);
  28. Example.Criteria criteria = example.createCriteria();
  29. Example.Criteria criteria2 = example.createCriteria();
  30. if (StringUtils.isNotBlank(keyword)) {
  31. criteria.andLike("name", "%" + WebUtil.covertData(keyword) + "%");
  32. }
  33. criteria2.andEqualTo("del_flag", 0);
  34. //倒序
  35. example.and(criteria2);
  36. example.setOrderByClause("create_time desc");
  37. PageHelper.startPage(pageNum, pageSize);
  38. List<DictionaryItem> items = this.selectByExample(example);
  39. return new PageInfo<DictionaryItem>(items);
  40. }
  41. public PageInfo<DictionaryItem> findPageByType(Integer pageNum, Integer pageSize, String keyword, Integer typeId) {
  42. Example example = new Example(DictionaryItem.class);
  43. Example.Criteria criteria = example.createCriteria();
  44. Example.Criteria criteria2 = example.createCriteria();
  45. if (StringUtils.isNotBlank(keyword)) {
  46. criteria.andLike("name", "%" + WebUtil.covertData(keyword) + "%");
  47. }
  48. if (null != typeId) {
  49. criteria.andEqualTo("tid", typeId);
  50. }
  51. criteria2.andEqualTo("del_flag", 0);
  52. //倒序
  53. example.and(criteria2);
  54. example.setOrderByClause("create_time desc");
  55. PageHelper.startPage(pageNum, pageSize);
  56. List<DictionaryItem> items = this.selectByExample(example);
  57. return new PageInfo<DictionaryItem>(items);
  58. }
  59. public DictionaryItem getDictionaryItem(String name, String value, Integer typeId) {
  60. return dictionaryItemDao.getDictionaryItem(name, value, typeId);
  61. }
  62. public Boolean saveDictionaryItem(DictionaryItem item) {
  63. if (this.saveSelective(item) > 0) {
  64. return true;
  65. }
  66. return false;
  67. }
  68. public Boolean updateDictionaryItem(DictionaryItem item) {
  69. if (this.updateSelective(item) > 0) {
  70. return true;
  71. }
  72. return false;
  73. }
  74. public String getNameById(Integer itemId) {
  75. DictionaryItem item = this.findById(itemId);
  76. if (null == item) {
  77. return "";
  78. } else {
  79. return item.getName();
  80. }
  81. }
  82. @Transactional(readOnly = true)
  83. public List<DictionaryItem> findListByTypeName(String typeName) {
  84. List<DictionaryItem> items = new ArrayList<DictionaryItem>();
  85. DictionaryType type = dictionaryTypeService.getDictionaryType(typeName);
  86. if (null != type) {
  87. Example example = new Example(DictionaryItem.class);
  88. Example.Criteria criteria = example.createCriteria();
  89. criteria.andEqualTo("tid", type.getId());
  90. criteria.andEqualTo("del_flag", 0);
  91. criteria.andEqualTo("is_active", 1);
  92. example.setOrderByClause("sort");
  93. items = this.selectByExample(example);
  94. }
  95. return items;
  96. }
  97. //根据类型和值(value)查找item
  98. public DictionaryItem findByTypeAndValue(String typeName, String value) {
  99. DictionaryItem condition = new DictionaryItem();
  100. condition.setValue(value);
  101. DictionaryItem item = dictionaryItemDao.findByTypeAndCondition(typeName, condition);
  102. return item == null ? new DictionaryItem() : item;
  103. }
  104. //根据类型和值(value)查找名称(name)
  105. public String findNameByTypeAndValue(String typeName, String value) {
  106. if (StringUtils.isNotBlank(typeName) && StringUtils.isNotBlank(value)) {
  107. DictionaryItem condition = new DictionaryItem();
  108. condition.setValue(value);
  109. DictionaryItem item = dictionaryItemDao.findByTypeAndCondition(typeName, condition);
  110. if (null != item) {
  111. return item.getName();
  112. }
  113. }
  114. return "";
  115. }
  116. //根据类型和值(value)查找名称(name)
  117. public String findValueByTypeAndName(String typeName, String name) {
  118. if (StringUtils.isNotBlank(typeName) && StringUtils.isNotBlank(name)) {
  119. DictionaryItem condition = new DictionaryItem();
  120. condition.setName(name);
  121. DictionaryItem item = dictionaryItemDao.findByTypeAndCondition(typeName, condition);
  122. if (null != item) {
  123. return item.getValue();
  124. }
  125. }
  126. return "";
  127. }
  128. //根据类型和名称(name)查找Id
  129. public Integer findIdByTypeAndName(String typeName, String name) {
  130. DictionaryItem condition = new DictionaryItem();
  131. condition.setName(name);
  132. DictionaryItem item = dictionaryItemDao.findByTypeAndCondition(typeName, condition);
  133. if (null != item) {
  134. return item.getId();
  135. }
  136. return null;
  137. }
  138. //根据类型和名称(name)查找Id 离自己申请时间最近
  139. public Integer findIdByTypeAndNameRecent(String typeName, String name, String time) {
  140. DictionaryType type = dictionaryTypeService.getDictionaryType(typeName);
  141. // Example example = new Example(DictionaryItem.class);
  142. // Example.Criteria criteria = example.createCriteria();
  143. // criteria.andEqualTo("tid", type.getId());
  144. // criteria.andEqualTo("name", name);
  145. DictionaryItem condition = new DictionaryItem();
  146. condition.setTid(type.getId());
  147. condition.setName(name);
  148. List<DictionaryItem> dictionaryItemList =this.findListByWhere(condition);
  149. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  150. try {
  151. Date date1 = sdf.parse(time);
  152. Calendar cal = Calendar.getInstance();
  153. cal.setTime(date1);
  154. cal.add(Calendar.DATE, 1);
  155. date1 = cal.getTime();
  156. Iterator<DictionaryItem> it = dictionaryItemList.iterator();
  157. while (it.hasNext()) {
  158. DictionaryItem item = it.next();
  159. Date date2 = sdf.parse(item.getCreate_time());
  160. if (date1.before(date2)){
  161. it.remove();
  162. }
  163. }
  164. } catch (ParseException e) {
  165. e.printStackTrace();
  166. }
  167. DictionaryItem item = dictionaryItemList.get(dictionaryItemList.size() - 1);
  168. if (null != item) {
  169. return item.getId();
  170. }
  171. return 0;
  172. }
  173. //根据类型和名称(name)查找Id 仅激活
  174. public Integer findIdByTypeAndNameActive(String typeName, String name) {
  175. DictionaryItem condition = new DictionaryItem();
  176. condition.setName(name);
  177. condition.setIs_active(true);
  178. DictionaryItem item = dictionaryItemDao.findByTypeAndCondition(typeName, condition);
  179. if (null != item) {
  180. return item.getId();
  181. }
  182. return null;
  183. }
  184. //根据id查找item
  185. public DictionaryItem findByItemId(Integer id) {
  186. Example example = new Example(DictionaryItem.class);
  187. Example.Criteria criteria = example.createCriteria();
  188. criteria.andEqualTo("id", id);
  189. criteria.andEqualTo("del_flag", 0);
  190. List<DictionaryItem> itemList = this.selectByExample(example);
  191. DictionaryItem item = null;
  192. if (itemList != null && itemList.size() > 0) {
  193. item = itemList.get(0);
  194. }
  195. return item;
  196. }
  197. }