TIronStepServiceImpl.java 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. package com.sckj.iron.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import com.google.common.eventbus.AsyncEventBus;
  7. import com.sckj.common.core.PageResult;
  8. import com.sckj.common.validate.commons.PageValidate;
  9. import com.sckj.iron.entity.TIronStep;
  10. import com.sckj.iron.mapper.TIronStepMapper;
  11. import com.sckj.iron.validate.TIronStepCreateValidate;
  12. import com.sckj.iron.validate.TIronStepSearchValidate;
  13. import com.sckj.iron.validate.TIronStepUpdateValidate;
  14. import com.sckj.iron.vo.IronStepVO;
  15. import com.sckj.iron.vo.TIronStepDetailVo;
  16. import com.sckj.iron.vo.TIronStepListedVo;
  17. import org.apache.commons.lang3.ObjectUtils;
  18. import org.springframework.beans.BeanUtils;
  19. import org.springframework.stereotype.Service;
  20. import org.springframework.util.Assert;
  21. import javax.annotation.Resource;
  22. import java.util.*;
  23. import java.util.stream.Collectors;
  24. /**
  25. * 出铁步骤配置实现类
  26. *
  27. * @author LikeAdmin
  28. */
  29. @Service
  30. public class TIronStepServiceImpl extends ServiceImpl<TIronStepMapper, TIronStep> {
  31. @Resource
  32. TIronStepMapper tIronStepMapper;
  33. @Resource
  34. private AsyncEventBus asyncEventBus;
  35. /***
  36. * 获取步骤及其子步骤
  37. * @return
  38. */
  39. public List<IronStepVO> getTreeSteps() {
  40. QueryWrapper<TIronStep> queryWrapper = new QueryWrapper<>();
  41. queryWrapper.lambda().eq(TIronStep::getStatus, "1").orderByAsc(TIronStep::getSort);
  42. List<TIronStep> stepList = list(queryWrapper);
  43. //按照 StepId 长度排序
  44. stepList = stepList.stream()
  45. .sorted((d1, d2) -> d1.getStepId().length() - d2.getStepId().length())
  46. .collect(Collectors.toList());
  47. Map<String, IronStepVO> stepMap = new HashMap<>();
  48. List<IronStepVO> stepDTOList = new ArrayList<>();
  49. // 将所有部门存入 Map 中
  50. for (TIronStep step : stepList) {
  51. IronStepVO stepVO = new IronStepVO();
  52. BeanUtils.copyProperties(step, stepVO);
  53. stepMap.put(step.getStepId(), stepVO);
  54. }
  55. for (TIronStep step : stepList) {
  56. String stepId = step.getStepId();
  57. IronStepVO currentDto = stepMap.get(stepId);
  58. if (stepId.length() == 3) {
  59. stepDTOList.add(currentDto);
  60. } else {
  61. String parentId = stepId.substring(0, stepId.length() - 3);
  62. IronStepVO parent = stepMap.get(parentId);
  63. if (parent != null) {
  64. parent.addChilds(currentDto);
  65. }
  66. }
  67. }
  68. return stepDTOList;
  69. }
  70. public void refreshTreeSteps() {
  71. asyncEventBus.post("1");
  72. }
  73. public void refreshParams() {
  74. asyncEventBus.post("2");
  75. }
  76. public void refreshModals() {
  77. asyncEventBus.post("3");
  78. }
  79. public void refreshAudios() {
  80. asyncEventBus.post("4");
  81. }
  82. /**
  83. * 出铁步骤配置列表
  84. *
  85. * @author LikeAdmin
  86. * @param pageValidate 分页参数
  87. * @param searchValidate 搜索参数
  88. * @return PageResult<TIronStepListedVo>
  89. */
  90. public PageResult<TIronStepListedVo> list(PageValidate pageValidate, TIronStepSearchValidate searchValidate) {
  91. Integer page = pageValidate.getPageNo();
  92. Integer limit = pageValidate.getPageSize();
  93. QueryWrapper<TIronStep> queryWrapper = new QueryWrapper<>();
  94. if(ObjectUtils.isNotEmpty(searchValidate.getStepId())){
  95. queryWrapper.lambda().eq(TIronStep::getStepId, searchValidate.getStepId());
  96. }
  97. if(ObjectUtils.isNotEmpty(searchValidate.getRequired())){
  98. queryWrapper.lambda().eq(TIronStep::getRequired, searchValidate.getRequired());
  99. }
  100. if(ObjectUtils.isNotEmpty(searchValidate.getIdentifier())){
  101. queryWrapper.lambda().like(TIronStep::getIdentifier, searchValidate.getIdentifier());
  102. }
  103. if(ObjectUtils.isNotEmpty(searchValidate.getStepName())){
  104. queryWrapper.lambda().like(TIronStep::getStepName, searchValidate.getStepName());
  105. }
  106. if(ObjectUtils.isNotEmpty(searchValidate.getStepNameExpression())){
  107. queryWrapper.lambda().like(TIronStep::getStepNameExpression, searchValidate.getStepNameExpression());
  108. }
  109. if(ObjectUtils.isNotEmpty(searchValidate.getStepCondition())){
  110. queryWrapper.lambda().like(TIronStep::getStepCondition, searchValidate.getStepCondition());
  111. }
  112. if(ObjectUtils.isNotEmpty(searchValidate.getSort())){
  113. queryWrapper.lambda().eq(TIronStep::getSort, searchValidate.getSort());
  114. }
  115. if(ObjectUtils.isNotEmpty(searchValidate.getNodeType())){
  116. queryWrapper.lambda().eq(TIronStep::getNodeType, searchValidate.getNodeType());
  117. }
  118. if(ObjectUtils.isNotEmpty(searchValidate.getStatus())){
  119. queryWrapper.lambda().eq(TIronStep::getStatus, searchValidate.getStatus());
  120. }
  121. if(ObjectUtils.isNotEmpty(searchValidate.getConfirmMode())){
  122. queryWrapper.lambda().eq(TIronStep::getConfirmMode, searchValidate.getConfirmMode());
  123. }
  124. if(ObjectUtils.isNotEmpty(searchValidate.getPointName())){
  125. queryWrapper.lambda().like(TIronStep::getPointName, searchValidate.getPointName());
  126. }
  127. queryWrapper.orderByAsc(Arrays.asList("sort"));
  128. // tIronStepMapper.setSearch(queryWrapper, searchValidate, new String[]{
  129. // "=:stepId@step_id:str",
  130. // "=:required:str",
  131. // "like:identifier@identifier:str",
  132. // "like:stepName@step_name:str",
  133. // "like:stepNameExpression@step_name_expression:str",
  134. // "like:stepCondition@step_condition:str",
  135. // "=:sort:int",
  136. // "=:nodeType@node_type:str",
  137. // "=:status:str",
  138. // "=:confirmMode@confirm_mode:str",
  139. // "like:pointName@point_name:str",
  140. // });
  141. //
  142. IPage<TIronStep> iPage = tIronStepMapper.selectPage(new Page<>(page, limit), queryWrapper);
  143. List<TIronStepListedVo> list = new LinkedList<>();
  144. for(TIronStep item : iPage.getRecords()) {
  145. TIronStepListedVo vo = new TIronStepListedVo();
  146. BeanUtils.copyProperties(item, vo);
  147. list.add(vo);
  148. }
  149. return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
  150. }
  151. /**
  152. * 出铁步骤配置详情
  153. *
  154. * @author LikeAdmin
  155. * @param id 主键参数
  156. * @return TIronStep
  157. */
  158. public TIronStepDetailVo detail(String id) {
  159. TIronStep model = tIronStepMapper.selectOne(
  160. new QueryWrapper<TIronStep>()
  161. .eq("step_id", id)
  162. .last("limit 1"));
  163. Assert.notNull(model, "数据不存在");
  164. TIronStepDetailVo vo = new TIronStepDetailVo();
  165. BeanUtils.copyProperties(model, vo);
  166. return vo;
  167. }
  168. /**
  169. * 出铁步骤配置新增
  170. *
  171. * @author LikeAdmin
  172. * @param createValidate 参数
  173. */
  174. public void add(TIronStepCreateValidate createValidate) {
  175. TIronStep model = new TIronStep();
  176. model.setStepId(createValidate.getStepId());
  177. model.setIdentifier(createValidate.getIdentifier());
  178. model.setRequired(createValidate.getRequired());
  179. model.setStepName(createValidate.getStepName());
  180. model.setStepNameExpression(createValidate.getStepNameExpression());
  181. model.setStepCondition(createValidate.getStepCondition());
  182. model.setSort(createValidate.getSort());
  183. model.setNodeType(createValidate.getNodeType());
  184. model.setStatus(createValidate.getStatus());
  185. model.setConfirmMode(createValidate.getConfirmMode());
  186. model.setPointName(createValidate.getPointName());
  187. tIronStepMapper.insert(model);
  188. }
  189. /**
  190. * 出铁步骤配置编辑
  191. *
  192. * @author LikeAdmin
  193. * @param updateValidate 参数
  194. */
  195. public void edit(TIronStepUpdateValidate updateValidate) {
  196. TIronStep model = tIronStepMapper.selectOne(
  197. new QueryWrapper<TIronStep>()
  198. .eq("step_id", updateValidate.getStepId())
  199. .last("limit 1"));
  200. Assert.notNull(model, "数据不存在!");
  201. model.setStepId(updateValidate.getStepId());
  202. model.setRequired(updateValidate.getRequired());
  203. model.setIdentifier(updateValidate.getIdentifier());
  204. model.setStepName(updateValidate.getStepName());
  205. model.setStepNameExpression(updateValidate.getStepNameExpression());
  206. model.setStepCondition(updateValidate.getStepCondition());
  207. model.setSort(updateValidate.getSort());
  208. model.setNodeType(updateValidate.getNodeType());
  209. model.setStatus(updateValidate.getStatus());
  210. model.setConfirmMode(updateValidate.getConfirmMode());
  211. model.setPointName(updateValidate.getPointName());
  212. tIronStepMapper.updateById(model);
  213. }
  214. /**
  215. * 出铁步骤配置删除
  216. *
  217. * @author LikeAdmin
  218. * @param id 主键ID
  219. */
  220. public void del(String id) {
  221. TIronStep model = tIronStepMapper.selectOne(
  222. new QueryWrapper<TIronStep>()
  223. .eq("step_id", id)
  224. .last("limit 1"));
  225. Assert.notNull(model, "数据不存在!");
  226. tIronStepMapper.delete(new QueryWrapper<TIronStep>().eq("identifier", id));
  227. }
  228. }