FileMgrServiceImpl.java 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. package com.ghsc.partybuild.service.impl;
  2. import com.github.pagehelper.PageHelper;
  3. import com.github.pagehelper.PageInfo;
  4. import com.ghsc.partybuild.controller.jsonmodel.RequsetData;
  5. import com.ghsc.partybuild.mapper.CfFileCQuery;
  6. import com.ghsc.partybuild.mapper.CfFileMapper;
  7. import com.ghsc.partybuild.mapper.DsjFilemrgMapper;
  8. import com.ghsc.partybuild.mapper.DsjFiletypeMapper;
  9. import com.ghsc.partybuild.model.*;
  10. import com.ghsc.partybuild.service.DictionaryService;
  11. import com.ghsc.partybuild.service.FileMgrService;
  12. import com.ghsc.partybuild.util.MapUtils;
  13. import com.ghsc.partybuild.util.StringUtils;
  14. import com.ghsc.partybuild.vo.DsjTreeFiletype;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Service;
  17. import java.util.*;
  18. /**
  19. *
  20. * @author wufs
  21. * @date 2020/05/15
  22. */
  23. @Service("fileMgrService")
  24. public class FileMgrServiceImpl implements FileMgrService {
  25. @Autowired
  26. private DictionaryService dictionaryService;
  27. @Autowired
  28. private StringUtils stringUtils;
  29. @Autowired
  30. private DsjFilemrgMapper dsjFilemrgMapper;
  31. @Autowired
  32. private DsjFiletypeMapper dsjFiletypeMapper;
  33. @Autowired
  34. private MapUtils mapUtils;
  35. @Autowired
  36. private CfFileMapper cfFileMapper;
  37. @Autowired
  38. private CfFileCQuery cfFileCQuery;
  39. @Override
  40. public PageInfo<DsjFilemrg> getFilesByType(String fileTypeId, String fileName, int pageIndex, int pageSize) {
  41. DsjFilemrgExample exp = new DsjFilemrgExample();
  42. DsjFilemrgExample.Criteria criteria = exp.createCriteria();
  43. if (!stringUtils.IsNullOrEmpty(fileName)){
  44. criteria.andFilenameLike("%" + fileName + "%");
  45. }
  46. if(!stringUtils.IsNullOrEmpty(fileTypeId)) {
  47. List<String> typeIds = findFileTypeAndChildren(fileTypeId);
  48. criteria.andFiletypeidIn(typeIds);
  49. }
  50. exp.setOrderByClause("cast((filecode) as SIGNED INTEGER ) asc");
  51. PageHelper.startPage(pageIndex, pageSize);
  52. List<DsjFilemrg> flist = dsjFilemrgMapper.selectByExample(exp);
  53. PageInfo<DsjFilemrg> pList = new PageInfo(flist);
  54. return pList;
  55. }
  56. @Override
  57. public PageInfo<DsjFilemrg> getFilesByKey(String fileName, int pageIndex, int pageSize) {
  58. DsjFilemrgExample exp = new DsjFilemrgExample();
  59. DsjFilemrgExample.Criteria criteria = exp.createCriteria();
  60. criteria.andFilenameLike("%"+fileName+"%");
  61. PageHelper.startPage(pageIndex, pageSize);
  62. //fileName
  63. List<DsjFilemrg> flist = dsjFilemrgMapper.selectByExample(exp);
  64. PageInfo<DsjFilemrg> pList = new PageInfo(flist);
  65. return pList;
  66. }
  67. protected List<String> findFileTypeAndChildren(String fileTypeId){
  68. List<String> fileTypeids=new ArrayList<>();
  69. DsjFiletype filetype =dsjFiletypeMapper.selectByPrimaryKey(fileTypeId);
  70. if(filetype!=null){
  71. fileTypeids.add(filetype.getFiletypeid());
  72. getFileTypeChildren(filetype.getFiletypeid(),fileTypeids);
  73. }
  74. return fileTypeids;
  75. }
  76. protected void getFileTypeChildren(String parentfileTypeId,List<String> ids){
  77. DsjFiletypeExample exp=new DsjFiletypeExample();
  78. exp.or().andParenttypeidEqualTo(parentfileTypeId);
  79. List<DsjFiletype> typeChildren=dsjFiletypeMapper.selectByExample(exp);
  80. typeChildren.forEach(it->{
  81. ids.add(it.getFiletypeid());
  82. this.getFileTypeChildren(it.getFiletypeid(),ids);
  83. });
  84. }
  85. @Override
  86. public List<DsjFiletype> getFileTypeRoot() {
  87. DsjFiletypeExample exp = new DsjFiletypeExample();
  88. exp.or().andParenttypeidIsNull();
  89. exp.setOrderByClause("treelevel asc");
  90. List<DsjFiletype> filesRoot = dsjFiletypeMapper.selectByExample(exp);
  91. return filesRoot;
  92. }
  93. @Override
  94. public List<DsjFiletype> getFileTypeByParent(String parentId) {
  95. DsjFiletypeExample exp = new DsjFiletypeExample();
  96. exp.or().andParenttypeidEqualTo(parentId);
  97. exp.setOrderByClause("treelevel asc");
  98. List<DsjFiletype> filetypes = dsjFiletypeMapper.selectByExample(exp);
  99. return filetypes;
  100. }
  101. @Override
  102. public List<DsjTreeFiletype> getFileTreeByParent(String parentId, List<String> typeIds, List<String> passTypeIds) {
  103. return cfFileCQuery.selectTreeFiles(parentId, null, typeIds, passTypeIds);
  104. }
  105. @Override
  106. public PageInfo<Map<String, Object>> selectFiletypeList(String typename,String parentId ,int pageIndex, int pageSize) {
  107. PageHelper.startPage(pageIndex, pageSize);
  108. List<DsjTreeFiletype> list = cfFileCQuery.selectTreeFiles(parentId, typename, null, null);
  109. PageInfo<Map<String, Object>> pList = new PageInfo(list);
  110. return pList;
  111. }
  112. @Override
  113. public DsjFiletype getFiletype(String typeid) {
  114. DsjFiletype filetype= dsjFiletypeMapper.selectByPrimaryKey(typeid);
  115. return filetype;
  116. }
  117. @Override
  118. public int deleteFiletype(String id) {
  119. DsjFiletypeExample exp = new DsjFiletypeExample();
  120. DsjFiletypeExample.Criteria criteria = exp.or();
  121. criteria.andParenttypeidEqualTo(id);
  122. dsjFiletypeMapper.deleteByExample(exp);
  123. return dsjFiletypeMapper.deleteByPrimaryKey(id);
  124. }
  125. @Override
  126. public RequsetData<String> saveFiletype(DsjFiletype model) {
  127. RequsetData<String> res = new RequsetData<String>();
  128. int result = 0;
  129. DsjFiletype item = dsjFiletypeMapper.selectByPrimaryKey(model.getFiletypeid());
  130. if (item==null) {
  131. model.setFiletypeid(UUID.randomUUID().toString());
  132. result = dsjFiletypeMapper.insert(model);
  133. } else {
  134. item.setFiletypename(model.getFiletypename());
  135. item.setParenttypeid(model.getParenttypeid());
  136. item.setTreelevel(model.getTreelevel());
  137. result =dsjFiletypeMapper.updateByPrimaryKeySelective(item);
  138. }
  139. if (result > 0) {
  140. res.setSuccess(true);
  141. res.setMsg("保存成功!");
  142. } else {
  143. res.setSuccess(false);
  144. res.setMsg("保存失败");
  145. }
  146. return res;
  147. }
  148. @Override
  149. public DsjFilemrg getFileInfo(String fileId) {
  150. return dsjFilemrgMapper.selectByPrimaryKey(fileId);
  151. }
  152. @Override
  153. public int deleteFile(String id) {
  154. return dsjFilemrgMapper.deleteByPrimaryKey(id);
  155. }
  156. @Override
  157. public RequsetData<String> saveFile(DsjFilemrg model) {
  158. RequsetData<String> res = new RequsetData<String>();
  159. int result = 0;
  160. DsjFilemrg item = dsjFilemrgMapper.selectByPrimaryKey(model.getFileid());
  161. if (item==null) {
  162. result = dsjFilemrgMapper.insert(model);
  163. } else {
  164. item.setFilename(model.getFilename());
  165. item.setFilecode(model.getFilecode());
  166. item.setFiletypeid(model.getFiletypeid());
  167. item.setFilecode2(model.getFilecode2());
  168. result= dsjFilemrgMapper.updateByPrimaryKeySelective(item);
  169. }
  170. if (result > 0) {
  171. res.setSuccess(true);
  172. res.setMsg("保存成功!");
  173. } else {
  174. res.setSuccess(false);
  175. res.setMsg("保存失败");
  176. }
  177. return res;
  178. }
  179. @Override
  180. public PageInfo<Map<String, Object>> FindFilesApp(String fileName, String fileTypeId, int pageIndex, int pageSize) {
  181. List<String> typeIds=new ArrayList<>();
  182. if(!stringUtils.IsNullOrEmpty(fileTypeId)) {
  183. typeIds = findFileTypeAndChildren(fileTypeId);
  184. }
  185. PageHelper.startPage(pageIndex, pageSize);
  186. PageHelper.orderBy("TREELEVEL asc,cast(filecode2 as unsigned int) asc");
  187. List<Map<String,Object>> list=cfFileCQuery.FindDSJ_File(fileName,typeIds);
  188. PageInfo<Map<String, Object>> pList = new PageInfo(list);
  189. return pList;
  190. }
  191. @Override
  192. public PageInfo<Map<String, Object>> getFileList(String fileRefID, Integer fileTypeId, int pageIndex, int pageSize) {
  193. //List<CfDictionary> dic_ztType=dictionaryService.getDictionaryListByDicTypeKey("FileMgrType");
  194. PageHelper.startPage(pageIndex, pageSize);
  195. //PageHelper.orderBy("to_number(filecode2) asc");
  196. CfFileExample exp = new CfFileExample();
  197. CfFileExample.Criteria cri = exp.or();
  198. exp.setOrderByClause("CREATETIME");
  199. if (fileTypeId != null) {
  200. cri.andFiletypeEqualTo(fileTypeId);
  201. }
  202. cri.andFilerefidEqualTo(fileRefID);
  203. cri.andOperatestateNotEqualTo("D");
  204. List<CfFile> flist = cfFileMapper.selectByExample(exp);
  205. List<Map<String, Object>> mList = new ArrayList<>();
  206. for (CfFile it : flist) {
  207. Map<String, Object> mit = mapUtils.objectToMap(it);
  208. mList.add(mit);
  209. }
  210. PageInfo<Map<String, Object>> pList = new PageInfo(mList);
  211. return pList;
  212. }
  213. @Override
  214. public List<Map<String, Object>> selectAllFile() {
  215. //return this.dsjFilemrgMapper.selectAllFile();
  216. return null;
  217. }
  218. }