PrintDevController.java 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518
  1. package jnpf.base.controller;
  2. import cn.dev33.satoken.annotation.SaCheckPermission;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.google.common.collect.Lists;
  5. import io.swagger.v3.oas.annotations.Operation;
  6. import io.swagger.v3.oas.annotations.Parameter;
  7. import io.swagger.v3.oas.annotations.Parameters;
  8. import io.swagger.v3.oas.annotations.tags.Tag;
  9. import jakarta.validation.Valid;
  10. import jnpf.base.ActionResult;
  11. import jnpf.base.entity.DictionaryDataEntity;
  12. import jnpf.base.entity.PrintDevEntity;
  13. import jnpf.base.entity.PrintVersionEntity;
  14. import jnpf.base.entity.SystemEntity;
  15. import jnpf.base.model.print.*;
  16. import jnpf.base.model.query.PrintDevDataQuery;
  17. import jnpf.base.model.query.PrintDevParam;
  18. import jnpf.base.model.vo.PrintDevListVO;
  19. import jnpf.base.model.vo.PrintDevVO;
  20. import jnpf.base.service.DictionaryDataService;
  21. import jnpf.base.service.PrintDevService;
  22. import jnpf.base.service.PrintVersionService;
  23. import jnpf.base.service.SystemService;
  24. import jnpf.base.vo.DownloadVO;
  25. import jnpf.base.vo.ListVO;
  26. import jnpf.base.vo.PageListVO;
  27. import jnpf.base.vo.PaginationVO;
  28. import jnpf.config.ConfigValueUtil;
  29. import jnpf.constant.CodeConst;
  30. import jnpf.constant.FileTypeConstant;
  31. import jnpf.constant.MsgCode;
  32. import jnpf.emnus.ModuleTypeEnum;
  33. import jnpf.exception.DataException;
  34. import jnpf.exception.WorkFlowException;
  35. import jnpf.permission.entity.UserEntity;
  36. import jnpf.permission.service.CodeNumService;
  37. import jnpf.permission.service.UserService;
  38. import jnpf.util.*;
  39. import jnpf.util.context.RequestContext;
  40. import jnpf.util.enums.DictionaryDataEnum;
  41. import org.apache.commons.collections4.CollectionUtils;
  42. import org.springframework.beans.factory.annotation.Autowired;
  43. import org.springframework.http.MediaType;
  44. import org.springframework.web.bind.annotation.*;
  45. import org.springframework.web.multipart.MultipartFile;
  46. import java.util.*;
  47. import java.util.stream.Collectors;
  48. /**
  49. * 打印模板 -控制器
  50. *
  51. * @author JNPF开发平台组
  52. * @version V3.2.0
  53. * @copyright 引迈信息技术有限公司
  54. * @date 2019年9月30日
  55. */
  56. @Tag(name = "打印模板", description = "print")
  57. @RestController
  58. @RequestMapping("/api/system/printDev")
  59. public class PrintDevController {
  60. @Autowired
  61. private PrintDevService printDevService;
  62. @Autowired
  63. private PrintVersionService versionService;
  64. @Autowired
  65. private FileExport fileExport;
  66. @Autowired
  67. private ConfigValueUtil configValueUtil;
  68. @Autowired
  69. private DictionaryDataService dictionaryDataService;
  70. @Autowired
  71. private UserService userService;
  72. @Autowired
  73. private CodeNumService codeNumService;
  74. @Autowired
  75. private SystemService systemService;
  76. @Operation(summary = "列表")
  77. @SaCheckPermission("onlineDev.printDev")
  78. @GetMapping
  79. public ActionResult list(PaginationPrint paginationPrint) {
  80. SystemEntity systemEntity = systemService.getInfoByEnCode(RequestContext.getAppCode());
  81. paginationPrint.setSystemId(systemEntity.getId());
  82. List<PrintDevEntity> list = printDevService.getList(paginationPrint);
  83. List<String> userId = list.stream().map(t -> t.getCreatorUserId()).collect(Collectors.toList());
  84. List<String> lastUserId = list.stream().map(t -> t.getLastModifyUserId()).collect(Collectors.toList());
  85. lastUserId.removeAll(Collections.singleton(null));
  86. List<UserEntity> userEntities = userService.getUserName(userId);
  87. List<UserEntity> lastUserIdEntities = userService.getUserName(lastUserId);
  88. List<DictionaryDataEntity> typeList = dictionaryDataService.getListByTypeDataCode(DictionaryDataEnum.SYSTEM_PRINTDEV.getDictionaryTypeId());
  89. List<PrintDevListVO> listVOS = new ArrayList<>();
  90. for (PrintDevEntity entity : list) {
  91. PrintDevListVO vo = JsonUtil.getJsonToBean(entity, PrintDevListVO.class);
  92. DictionaryDataEntity dataEntity = typeList.stream().filter(t -> t.getId().equals(entity.getCategory())).findFirst().orElse(null);
  93. if (dataEntity != null) {
  94. vo.setCategory(dataEntity.getFullName());
  95. } else {
  96. vo.setCategory("");
  97. }
  98. //创建者
  99. UserEntity creatorUser = userEntities.stream().filter(t -> t.getId().equals(entity.getCreatorUserId())).findFirst().orElse(null);
  100. vo.setCreatorUser(creatorUser != null ? creatorUser.getRealName() + "/" + creatorUser.getAccount() : entity.getCreatorUserId());
  101. //修改人
  102. UserEntity lastModifyUser = lastUserIdEntities.stream().filter(t -> t.getId().equals(entity.getLastModifyUserId())).findFirst().orElse(null);
  103. vo.setLastModifyUser(lastModifyUser != null ? lastModifyUser.getRealName() + "/" + lastModifyUser.getAccount() : entity.getLastModifyUserId());
  104. listVOS.add(vo);
  105. }
  106. PaginationVO paginationVO = JsonUtil.getJsonToBean(paginationPrint, PaginationVO.class);
  107. return ActionResult.page(listVOS, paginationVO);
  108. }
  109. /*============模板增删改==============*/
  110. @Operation(summary = "新增")
  111. @Parameters({
  112. @Parameter(name = "printDevForm", description = "打印模板数据传输对象")
  113. })
  114. @SaCheckPermission("onlineDev.printDev")
  115. @PostMapping
  116. public ActionResult create(@RequestBody @Valid PrintDevFormDTO printDevForm) {
  117. SystemEntity systemEntity = systemService.getInfoByEnCode(RequestContext.getAppCode());
  118. printDevForm.setSystemId(systemEntity.getId());
  119. printDevService.create(printDevForm);
  120. return ActionResult.success(MsgCode.SU001.get(), printDevForm.getId());
  121. }
  122. @Operation(summary = "详情")
  123. @Parameters({
  124. @Parameter(name = "id", description = "打印模板id")
  125. })
  126. @SaCheckPermission("onlineDev.printDev")
  127. @GetMapping("/{id}")
  128. public ActionResult<PrintDevInfoVO> info(@PathVariable("id") String id) {
  129. PrintDevEntity byId = printDevService.getById(id);
  130. PrintDevInfoVO vo = JsonUtil.getJsonToBean(byId, PrintDevInfoVO.class);
  131. return ActionResult.success(vo);
  132. }
  133. @Operation(summary = "更新")
  134. @PutMapping("/{id}")
  135. @Parameters({
  136. @Parameter(name = "id", description = "主键", required = true),
  137. @Parameter(name = "form", description = "流程模型", required = true),
  138. })
  139. public ActionResult update(@PathVariable("id") String id, @RequestBody @Valid PrintDevFormDTO printDevForm) throws WorkFlowException {
  140. PrintDevEntity printDevEntity = JsonUtil.getJsonToBean(printDevForm, PrintDevEntity.class);
  141. PrintDevEntity originEntity = printDevService.getById(id);
  142. printDevService.creUpdateCheck(printDevEntity,
  143. !originEntity.getFullName().equals(printDevForm.getFullName()),
  144. !originEntity.getEnCode().equals(printDevForm.getEnCode()));
  145. printDevEntity.setId(id);
  146. if (StringUtil.isEmpty(printDevEntity.getEnCode())) {
  147. printDevEntity.setEnCode(codeNumService.getCodeFunction(() -> codeNumService.getCodeOnce(CodeConst.DY), code -> printDevService.isExistByEnCode(code, id)));
  148. }
  149. printDevEntity.setLastModifyTime(DateUtil.getNowDate());
  150. printDevEntity.setLastModifyUserId(UserProvider.getUser().getUserId());
  151. printDevService.updateById(printDevEntity);
  152. return ActionResult.success(MsgCode.SU004.get());
  153. }
  154. @Operation(summary = "删除")
  155. @Parameters({
  156. @Parameter(name = "id", description = "打印模板id")
  157. })
  158. @SaCheckPermission("onlineDev.printDev")
  159. @DeleteMapping("/{id}")
  160. public ActionResult<PrintDevFormDTO> delete(@PathVariable String id) {
  161. //对象存在判断
  162. if (printDevService.getById(id) != null) {
  163. printDevService.removeById(id);
  164. versionService.removeByTemplateId(id);
  165. return ActionResult.success(MsgCode.SU003.get());
  166. } else {
  167. return ActionResult.fail(MsgCode.FA003.get());
  168. }
  169. }
  170. /*============版本增删改==============*/
  171. @Operation(summary = "版本详情")
  172. @Parameters({
  173. @Parameter(name = "versionId", description = "打印版本id")
  174. })
  175. @SaCheckPermission("onlineDev.printDev")
  176. @GetMapping("/Info/{versionId}")
  177. public ActionResult<PrintDevInfoVO> versionInfo(@PathVariable String versionId) {
  178. PrintDevInfoVO info = printDevService.getVersionInfo(versionId);
  179. return ActionResult.success(info);
  180. }
  181. @Operation(summary = "版本新增")
  182. @Parameters({
  183. @Parameter(name = "versionId", description = "打印版本id")
  184. })
  185. @SaCheckPermission("onlineDev.printDev")
  186. @PostMapping("/Info/{versionId}")
  187. public ActionResult copyVersion(@PathVariable String versionId) {
  188. String newVersionId = versionService.copyVersion(versionId);
  189. return ActionResult.success(MsgCode.SU005.get(), newVersionId);
  190. }
  191. @Operation(summary = "版本删除")
  192. @Parameters({
  193. @Parameter(name = "versionId", description = "打印版本id")
  194. })
  195. @SaCheckPermission("onlineDev.printDev")
  196. @DeleteMapping("/Info/{versionId}")
  197. public ActionResult deleteVersion(@PathVariable String versionId) {
  198. PrintVersionEntity byId = versionService.getById(versionId);
  199. if (byId != null) {
  200. List<PrintVersionEntity> list = versionService.getList(byId.getTemplateId());
  201. if (list.size() == 1) {
  202. return ActionResult.fail(MsgCode.SYS043.get());
  203. }
  204. if (Objects.equals(byId.getState(), 1)) {
  205. return ActionResult.fail(MsgCode.SYS044.get());
  206. }
  207. if (Objects.equals(byId.getState(), 2)) {
  208. return ActionResult.fail(MsgCode.SYS045.get());
  209. }
  210. versionService.removeById(versionId);
  211. }
  212. return ActionResult.success(MsgCode.SU003.get());
  213. }
  214. @Operation(summary = "版本列表")
  215. @Parameters({
  216. @Parameter(name = "id", description = "打印模板id")
  217. })
  218. @SaCheckPermission("onlineDev.printDev")
  219. @GetMapping("/Version/{id}")
  220. public ActionResult<List<PrintVersionListVO>> versionList(@PathVariable String id) {
  221. List<PrintVersionEntity> list = versionService.getList(id);
  222. List<PrintVersionListVO> listVO = new ArrayList<>();
  223. for (PrintVersionEntity jsonEntity : list) {
  224. PrintVersionListVO vo = JsonUtil.getJsonToBean(jsonEntity, PrintVersionListVO.class);
  225. vo.setFullName("打印版本V" + vo.getVersion());
  226. listVO.add(vo);
  227. }
  228. return ActionResult.success(listVO);
  229. }
  230. //***********************************动作start
  231. @Operation(summary = "保存或者发布")
  232. @Parameters({
  233. @Parameter(name = "printDevForm", description = "打印模板数据传输对象")
  234. })
  235. @SaCheckPermission("onlineDev.printDev")
  236. @PostMapping("/Save")
  237. public ActionResult saveOrRelease(@RequestBody @Valid PrintDevUpForm form) {
  238. printDevService.saveOrRelease(form);
  239. if (Objects.equals(form.getType(), 1)) {
  240. return ActionResult.success(MsgCode.SU011.get());
  241. }
  242. return ActionResult.success(MsgCode.SU002.get());
  243. }
  244. @Operation(summary = "复制")
  245. @Parameters({
  246. @Parameter(name = "id", description = "打印模板id")
  247. })
  248. @SaCheckPermission("onlineDev.printDev")
  249. @PostMapping("/{id}/Actions/Copy")
  250. public ActionResult<PageListVO<PrintDevEntity>> copy(@PathVariable String id) {
  251. printDevService.copyPrintdev(id);
  252. return ActionResult.success(MsgCode.SU007.get());
  253. }
  254. @Operation(summary = "导出")
  255. @Parameters({
  256. @Parameter(name = "id", description = "打印模板id")
  257. })
  258. @SaCheckPermission("onlineDev.printDev")
  259. @GetMapping("/{id}/Actions/Export")
  260. public ActionResult<DownloadVO> export(@PathVariable String id) {
  261. PrintDevEntity entity = printDevService.getById(id);
  262. List<PrintVersionEntity> list = versionService.getList(id);
  263. if (CollectionUtils.isEmpty(list)) {
  264. return ActionResult.fail(MsgCode.FA001.get());
  265. }
  266. PrintDevInfoVO info = printDevService.getVersionInfo(list.get(0).getId());
  267. info.setSystemId(entity.getSystemId());
  268. //导出文件
  269. DownloadVO downloadVO = fileExport.exportFile(info, FileTypeConstant.TEMPORARY, entity.getFullName(), ModuleTypeEnum.SYSTEM_PRINT.getTableName());
  270. return ActionResult.success(downloadVO);
  271. }
  272. @Operation(summary = "导入")
  273. @SaCheckPermission("onlineDev.printDev")
  274. @PostMapping(value = "/Actions/Import", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
  275. public ActionResult<PageListVO<PrintDevEntity>> importData(@RequestPart("file") MultipartFile multipartFile,
  276. @RequestParam("type") Integer type) throws DataException {
  277. SystemEntity sysInfo = systemService.getInfoByEnCode(RequestContext.getAppCode());
  278. if (sysInfo == null) {
  279. return ActionResult.fail(MsgCode.FA001.get());
  280. }
  281. //判断是否为.json结尾
  282. if (FileUtil.existsSuffix(multipartFile, ModuleTypeEnum.SYSTEM_PRINT.getTableName())) {
  283. return ActionResult.fail(MsgCode.IMP002.get());
  284. }
  285. //读取文件内容
  286. String fileContent = FileUtil.getFileContent(multipartFile);
  287. PrintDevInfoVO infVo = JsonUtil.getJsonToBean(fileContent, PrintDevInfoVO.class);
  288. if (!sysInfo.getId().equals(infVo.getSystemId())) {
  289. infVo.setId(RandomUtil.uuId());
  290. infVo.setEnCode(codeNumService.getCodeFunction(() -> codeNumService.getCodeOnce(CodeConst.DY), code -> printDevService.isExistByEnCode(code, null)));
  291. infVo.setSystemId(sysInfo.getId());
  292. }
  293. String str = printDevService.importData(infVo, type);
  294. if (StringUtil.isNotEmpty(str)) {
  295. return ActionResult.fail(str);
  296. }
  297. return ActionResult.success(MsgCode.IMP001.get());
  298. }
  299. //***********************************动作end
  300. /**
  301. * 下拉列表
  302. *
  303. * @return 返回列表数据
  304. */
  305. @Operation(summary = "下拉列表")
  306. @GetMapping("/Selector")
  307. public ActionResult<ListVO<PrintDevVO>> selectorList(String category) throws Exception {
  308. ListVO<PrintDevVO> vo = new ListVO<>();
  309. vo.setList(printDevService.getTreeModel(category));
  310. return ActionResult.success(vo);
  311. }
  312. @Operation(summary = "Sql数据获取")
  313. @PostMapping("/BatchData")
  314. public ActionResult getBatchData(@RequestBody PrintDevDataQuery query) {
  315. String id = XSSEscape.escape(query.getId());
  316. PrintDevEntity entity = printDevService.getById(id);
  317. if (entity == null) {
  318. return ActionResult.fail(MsgCode.PRI001.get());
  319. }
  320. ArrayList<Object> list = new ArrayList<>();
  321. if (query.getFormInfo() != null && query.getFormInfo().size() > 0) {
  322. List<PrintDevParam> flowTaskInfo = query.getFormInfo();
  323. for (PrintDevParam rid : flowTaskInfo) {
  324. String oneId = "";
  325. String flowTaskId = "";
  326. if (Objects.nonNull(rid.getFormId())) {
  327. oneId = XSSEscape.escape(rid.getFormId().toString());
  328. }
  329. if (Objects.nonNull(rid.getFlowTaskId())) {
  330. flowTaskId = XSSEscape.escape(rid.getFlowTaskId().toString());
  331. }
  332. Map<String, Object> dataMap = printDevService.getDataMap(id, oneId, flowTaskId, query.getMap());
  333. dataMap.put("fullName", entity.getFullName());
  334. //打印全局配置
  335. if (Objects.nonNull(dataMap.get("globalConfig"))) {
  336. duoLianDaYin(dataMap, list);
  337. } else {
  338. list.add(dataMap);
  339. }
  340. }
  341. return ActionResult.success(list);
  342. }
  343. return ActionResult.success(list);
  344. }
  345. /**
  346. * 多联打印配置
  347. *
  348. * @param dataMap
  349. * @param list
  350. */
  351. private static void duoLianDaYin(Map<String, Object> dataMap, ArrayList<Object> list) {
  352. Map<String, Object> thisData = new HashMap<>(dataMap);
  353. Map<String, Object> printData = (Map<String, Object>) thisData.get("printData");
  354. GlobalConfig globalConfig = JsonUtil.getJsonToBean(dataMap.get("globalConfig").toString(), GlobalConfig.class);
  355. List<SliceConfig> sliceConfigList = globalConfig.getSliceConfig();
  356. List<SliceConfig> newSliceConfigList = sliceConfigList.stream().filter(t -> StringUtil.isNotEmpty(t.getDataSet()) && t.getLimit() != null
  357. && t.getLimit() > 0).collect(Collectors.toList());
  358. //无效配置不处理
  359. if (CollectionUtils.isEmpty(newSliceConfigList)) {
  360. list.add(dataMap);
  361. return;
  362. }
  363. if (newSliceConfigList.size() == 1) {
  364. SliceConfig sliceConfig = newSliceConfigList.get(0);
  365. List<Object> listOne = (List<Object>) printData.get(sliceConfig.getDataSet());
  366. if (CollectionUtils.isNotEmpty(listOne)) {
  367. oneList(list, listOne, sliceConfig, thisData, printData);
  368. } else {
  369. printData.put("systemSlicePageNo", "1-1");
  370. list.add(dataMap);
  371. }
  372. }
  373. if (newSliceConfigList.size() == 2) {
  374. SliceConfig sliceConfig1 = newSliceConfigList.get(0);
  375. SliceConfig sliceConfig2 = newSliceConfigList.get(1);
  376. List<Object> listOne = (List<Object>) printData.get(sliceConfig1.getDataSet());
  377. List<Object> listTwo = (List<Object>) printData.get(sliceConfig2.getDataSet());
  378. if (CollectionUtils.isNotEmpty(listOne) && CollectionUtils.isNotEmpty(listTwo)) {
  379. twoList(list, listOne, sliceConfig1, listTwo, sliceConfig2, thisData, printData);
  380. } else if (CollectionUtils.isNotEmpty(listOne)) {
  381. oneList(list, listOne, sliceConfig1, thisData, printData);
  382. } else if (CollectionUtils.isNotEmpty(listTwo)) {
  383. oneList(list, listTwo, sliceConfig2, thisData, printData);
  384. } else {
  385. printData.put("systemSlicePageNo", "1-1");
  386. list.add(dataMap);
  387. }
  388. }
  389. }
  390. private static void oneList(ArrayList<Object> list, List<Object> listOne, SliceConfig sliceConfig, Map<String, Object> thisData, Map<String, Object> printData) {
  391. List<List<Object>> lists = Lists.partition(listOne, sliceConfig.getLimit());
  392. int num = 1;
  393. for (List<Object> m : lists) {
  394. Map<String, Object> thisMap = new HashMap<>(thisData);
  395. Map<String, Object> thisPrintData = new HashMap<>(printData);
  396. thisPrintData.put(sliceConfig.getDataSet(), m);
  397. thisPrintData.put("systemSlicePageNo", num + "-1");
  398. thisMap.put("printData", thisPrintData);
  399. list.add(thisMap);
  400. num++;
  401. }
  402. }
  403. private static void twoList(ArrayList<Object> list, List<Object> listOne, SliceConfig sliceConfig1, List<Object> listTwo, SliceConfig sliceConfig2, Map<String, Object> thisData, Map<String, Object> printData) {
  404. List<List<Object>> lists1 = Lists.partition(listOne, sliceConfig1.getLimit());
  405. List<List<Object>> lists2 = Lists.partition(listTwo, sliceConfig2.getLimit());
  406. int l = 1;
  407. for (List<Object> m : lists1) {
  408. if (lists2.size() > 0) {
  409. int num = 1;
  410. for (int n = 0; n < lists2.size(); n++) {
  411. List<Object> nObject = lists2.get(n);
  412. Map<String, Object> thisMap = new HashMap<>(thisData);
  413. Map<String, Object> thisPrintData = new HashMap<>(printData);
  414. thisPrintData.put(sliceConfig1.getDataSet(), m);
  415. thisPrintData.put(sliceConfig2.getDataSet(), nObject);
  416. thisPrintData.put("systemSlicePageNo", num + "-" + lists2.size());
  417. thisMap.put("printData", thisPrintData);
  418. list.add(thisMap);
  419. num++;
  420. }
  421. } else {
  422. Map<String, Object> thisMap = new HashMap<>(thisData);
  423. Map<String, Object> thisPrintData = new HashMap<>(printData);
  424. thisPrintData.put(sliceConfig1.getDataSet(), m);
  425. thisPrintData.put("systemSlicePageNo", l + "-1");
  426. thisMap.put("printData", thisPrintData);
  427. list.add(thisMap);
  428. l++;
  429. }
  430. }
  431. }
  432. /**
  433. * 查询打印列表
  434. *
  435. * @param ids
  436. * @return
  437. */
  438. @Operation(summary = "查询打印列表")
  439. @Parameters({
  440. @Parameter(name = "ids", description = "主键集合")
  441. })
  442. @PostMapping("getListById")
  443. public List<PrintOption> getListById(@RequestBody List<String> ids) {
  444. return printDevService.getPrintTemplateOptions(ids);
  445. }
  446. @Operation(summary = "查询打印列表")
  447. @Parameters({
  448. @Parameter(name = "data", description = "打印模板-数查询对象")
  449. })
  450. @PostMapping("getListOptions")
  451. public ActionResult getListOptions(@RequestBody PrintDevDataQuery data) {
  452. List<String> ids = data.getIds();
  453. QueryWrapper<PrintDevEntity> wrapper = new QueryWrapper<>();
  454. wrapper.lambda().in(PrintDevEntity::getId, ids);
  455. List<PrintDevEntity> list = printDevService.getBaseMapper().selectList(wrapper);
  456. List<PrintOption> options = JsonUtil.getJsonToList(list, PrintOption.class);
  457. return ActionResult.success(options);
  458. }
  459. //新增
  460. @Operation(summary = "列表预览")
  461. @Parameters({
  462. @Parameter(name = "id", description = "打印模板id")
  463. })
  464. @SaCheckPermission("onlineDev.printDev")
  465. @GetMapping("/{id}/Actions/Preview")
  466. public ActionResult<PrintDevInfoVO> previewInfo(@PathVariable("id") String id) {
  467. List<PrintVersionEntity> list = versionService.getList(id);
  468. if (CollectionUtils.isEmpty(list)) {
  469. return ActionResult.fail(MsgCode.FA001.get());
  470. }
  471. PrintDevInfoVO info = printDevService.getVersionInfo(list.get(0).getId());
  472. PrintDevInfoVO vo = JsonUtil.getJsonToBean(info, PrintDevInfoVO.class);
  473. return ActionResult.success(vo);
  474. }
  475. @Operation(summary = "打印模板业务列表")
  476. @GetMapping("/WorkSelector")
  477. public ActionResult<PageListVO<PrintDevListVO>> getWorkSelector(PaginationPrint pagination) {
  478. List<PrintDevEntity> list = printDevService.getWorkSelector(pagination);
  479. List<String> collect = systemService.getList().stream().map(SystemEntity::getId).collect(Collectors.toList());
  480. list = list.stream().filter(t -> collect.contains(t.getSystemId())).collect(Collectors.toList());
  481. List<PrintDevListVO> listVO = JsonUtil.getJsonToList(list, PrintDevListVO.class);
  482. PaginationVO paginationVO = JsonUtil.getJsonToBean(pagination, PaginationVO.class);
  483. return ActionResult.page(listVO, paginationVO);
  484. }
  485. }