From 73dbe864eb18a1a4df4f41caed1dd128faf1b2ec Mon Sep 17 00:00:00 2001 From: ludc Date: 星期五, 02 六月 2023 19:11:27 +0800 Subject: [PATCH] 引用码段关于业务类型接口的联调,重复使用的界面抽离成单独组件 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java | 353 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 353 insertions(+), 0 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java new file mode 100644 index 0000000..1ac0859 --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java @@ -0,0 +1,353 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 搴勯獮 (smallchill@163.com) + */ +package com.vci.ubcs.code.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.vci.ubcs.code.entity.CodeClassify; +import com.vci.ubcs.code.mapper.CodeClassifyMapper; +import com.vci.ubcs.code.service.ICodeClassifyService; +import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO; +import com.vci.ubcs.code.wrapper.CodeClassifyWrapper; +import com.vci.ubcs.omd.vo.BtmTypeAttributeVO; +import com.vci.ubcs.starter.revision.model.TreeQueryObject; +import com.vci.ubcs.starter.util.LocalFileUtil; +import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject; +import com.vci.ubcs.starter.web.pagemodel.DataGrid; +import com.vci.ubcs.starter.web.pagemodel.Tree; +import com.vci.ubcs.starter.web.util.ControllerUtil; +import com.vci.ubcs.starter.web.util.LangBaseUtil; +import com.vci.ubcs.starter.web.util.VciBaseUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.File; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.Collection; +import java.util.Date; +import java.util.List; + +import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.FRAMEWORK_DATA_DISABLED; +import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED; + +/** + * 涓婚搴撳畾涔夎〃 鎺у埗鍣� + * + * @author yuxc + * @since 2023-04-06 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/codeClassify") +@Api(value = "涓婚搴撳畾涔夎〃", tags = "涓婚搴撳畾涔夎〃鎺ュ彛") +public class CodeClassifyController extends BladeController { + + private final ICodeClassifyService codeClassifyService; + + CodeClassifyMapper codeClassifyMapper; + /** + * 涓婚搴撳畾涔夎〃 璇︽儏 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "璇︽儏", notes = "浼犲叆plCodeClassify") + public R<CodeClassifyVO> detail(CodeClassify codeClassify) { + CodeClassify detail = codeClassifyMapper.selectOne(Condition.getQueryWrapper(codeClassify)); + return R.data(CodeClassifyWrapper.build().entityVO(detail)); + } + + /** + * 涓婚搴撳垎绫绘爲 + * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄 + * @return 涓婚搴撳垎绫绘樉绀烘爲 + */ + @GetMapping("/treeCodeClassify") + public List<Tree> treeCodeClassify(TreeQueryObject treeQueryObject) { + return codeClassifyService. treeCodeClassify(treeQueryObject); + } + + /** + * 涓婚搴撳畾涔夎〃 鍒嗛〉 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "鍒嗛〉", notes = "浼犲叆plCodeClassify") + public R<IPage<CodeClassifyVO>> list(CodeClassify codeClassify, Query query) { + IPage<CodeClassify> pages = codeClassifyMapper.selectPage(Condition.getPage(query), Condition.getQueryWrapper(codeClassify)); + return R.data(CodeClassifyWrapper.build().pageVO(pages)); + } + + /** + * 涓婚搴撳畾涔夎〃 鑷畾涔夊垎椤� + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "鍒嗛〉", notes = "浼犲叆plCodeClassify") + public R<IPage<CodeClassifyVO>> page(CodeClassifyVO codeClassify, Query query) { + IPage<CodeClassifyVO> pages = codeClassifyService.selectPlCodeClassifyPage(Condition.getPage(query), codeClassify); + return R.data(pages); + } + + /** + * 涓婚搴撳畾涔夎〃 鏂板 + * @param + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "鏂板", notes = "浼犲叆plCodeClassify") + public R save(@Valid @RequestBody CodeClassify codeClassify) { + if(codeClassify.getOrderNum() == null){ + codeClassify.setOrderNum(0); + } + return codeClassifyService.addSave(codeClassify); + } + + /** + * 涓婚搴撳畾涔夎〃 淇敼 + */ + @PostMapping("/editSave") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "淇敼", notes = "浼犲叆plCodeClassify") + public R editSave(@Valid @RequestBody CodeClassify codeClassify) { + return codeClassifyService.editSave(codeClassify); +// return R.status(SqlHelper.retBool(codeClassifyMapper.updateById(codeClassify))); + } + + /** + * 涓婚搴撳畾涔夎〃 鏂板鎴栦慨鏀� + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "鏂板鎴栦慨鏀�", notes = "浼犲叆plCodeClassify") + public R submit(@Valid @RequestBody CodeClassify codeClassify) { + if(codeClassify.getOid() != null){ + codeClassify.setLastModifier(AuthUtil.getUser().getUserName()); + codeClassify.setLastModifyTime(new Date()); + return R.status(SqlHelper.retBool(codeClassifyMapper.updateById(codeClassify))); + } + return codeClassifyService.addSave(codeClassify); + } + + /** + * 涓婚搴撳畾涔夎〃 鍒犻櫎 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @ApiOperation(value = "閫昏緫鍒犻櫎", notes = "浼犲叆oids") + public R remove(@ApiParam(value = "涓婚敭闆嗗悎", required = true) @RequestParam String oids) { + return R.status(SqlHelper.retBool(codeClassifyMapper.deleteBatchIds(Func.toLongList(oids)))); + } + + /** + * 妫�鏌� 涓婚搴撳垎绫绘槸鍚﹀垹闄� + * @param codeClassify 涓婚搴撳垎绫绘暟鎹紶杈撳璞★紝蹇呴』瑕佹湁oid鍜宼s灞炴�� + * @return 鎵ц缁撴灉 success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢� + */ + @PostMapping( "/checkIsCanDelete") + public R checkIsCanDelete(@Valid @RequestBody CodeClassify codeClassify) { + return codeClassifyService.checkIsCanDelete(codeClassify); + } + + /** + * 鍒犻櫎涓婚搴撳垎绫� + * @param codeClassify锛宱id鍜宼s闇�瑕佷紶杈� + * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐� + */ + @DeleteMapping( "/deleteData") + public R delCodeClassify(@Valid @RequestBody CodeClassify codeClassify) { + return codeClassifyService.deleteCodeClassify(codeClassify); + } + + /** + * 鍚敤 + * @param codeClassify + * @return + */ + @PostMapping( "/enableData") + public R enable(@Valid @RequestBody CodeClassify codeClassify) { + return codeClassifyService.updateLcStatus(codeClassify.getOid(),FRAMEWORK_DATA_ENABLED); + } + + /** + * 鍋滅敤 + * @param codeClassify + * @return + */ + @PostMapping( "/disableData") + public R disable(@Valid @RequestBody CodeClassify codeClassify) { + return codeClassifyService.updateLcStatus(codeClassify.getOid(),FRAMEWORK_DATA_DISABLED); + } + + /** + * 涓婚敭鎵归噺鑾峰彇涓婚搴撳垎绫� + * @param oids 涓婚敭锛屽涓互閫楀彿鍒嗛殧锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓� + * @return 涓婚搴撳垎绫绘樉绀哄璞� + */ + @GetMapping("/listDataByOids") + public R listCodeClassifyByOids(String oids){ + Collection<CodeClassifyVO> voCollection = codeClassifyService.listCodeClassifyByOids(VciBaseUtil.str2List(oids)); + return R.data(voCollection); + } + + /** + * 鍙傜収鏍� 涓婚搴撳垎绫� + * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄 + * @return 涓婚搴撳垎绫绘樉绀烘爲 + */ + @GetMapping("/referTree") + public List<Tree> referTree(@RequestBody TreeQueryObject treeQueryObject) { + return codeClassifyService.referTree(treeQueryObject); + } + + /** + * 瀵煎嚭鍒嗙被 + * @param oid 鍒嗙被涓婚敭 + */ + @GetMapping("/exportClassify") + public void exportClassify(@ApiParam(value = "涓婚敭", required = true) @RequestParam String oid, HttpServletResponse response) throws IOException { + String excelName = codeClassifyService.exportClassify(oid); + try { + ControllerUtil.writeFileToResponse(response,excelName); + } catch (Throwable e) { + //濡傛灉鍑洪敊,鎶婇敊璇俊鎭啓鍒皌ext + String msg = LangBaseUtil.getErrorMsg(e); + String errorFile = LocalFileUtil.getDefaultTempFolder() + File.separator + "閿欒.txt"; + LocalFileUtil.writeContentToFile(msg,errorFile); + ControllerUtil.writeFileToResponse(response,errorFile); + } + } + + /** + * 涓嬭浇瀵煎叆鐨勬ā鏉� + * @param response 鍝嶅簲瀵硅薄 + * @throws IOException 鎶涘嚭寮傚父 + */ + @GetMapping("/downloadImportExcel") + public void downloadImportExcel(HttpServletResponse response) throws IOException{ + String excelName = codeClassifyService.createImportExcel(); + try { + ControllerUtil.writeFileToResponse(response,excelName); + } catch (Throwable e) { + //濡傛灉鍑洪敊,鎶婇敊璇俊鎭啓鍒皌ext + String msg = LangBaseUtil.getErrorMsg(e); + if(StringUtil.isBlank(msg)){ + msg = "鏈煡閿欒"; + } + ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null); + } + } + + /** + * 瀵煎叆鍒嗙被 + * @param file excel鐨勫唴瀹� + * @return 鎵ц缁撴灉锛宱bj鏈夊�艰〃绀烘湁閿欒淇℃伅锛岄渶瑕佽闂甦ownloadErrorFile鏉ヤ笅杞� + */ + @PostMapping("/importClassify") + public R importClassify(MultipartFile file) { + String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + LocalFileUtil.getFileNameForIE(file.getOriginalFilename()); + File file1 = new File(excelFileName); + try { + file.transferTo(new File(excelFileName)); + codeClassifyService.importClassify(file1); + return R.success("瀵煎叆鎴愬姛锛�"); + }catch (Throwable e) { + String errorFile = LocalFileUtil.getDefaultTempFolder() + File.separator + "閿欒淇℃伅.txt"; + LocalFileUtil.writeContentToFile(LangBaseUtil.getErrorMsg(e),errorFile); + //鏀惧埌map閲� +// R result = R.fail("瀵煎叆澶辫触"); +// result.(ControllerUtil.putErrorFile(errorFile)); + return R.data(400,errorFile,"瀵煎叆澶辫触"); + }finally { + file1.delete(); + } + } + + /** + * 涓嬭浇閿欒鐨勬枃浠朵俊鎭� + * @param uuid 鍞竴鏍囪瘑 + * @param response 鍝嶅簲瀵硅薄 + * @throws IOException 鎶涘嚭寮傚父 + */ + @GetMapping("/downloadErrorFile") + public void downloadErrorFile(String uuid, HttpServletResponse response) throws IOException { + ControllerUtil.downloadErrorFile(response,uuid); + } + + /** + * 鑾峰彇鍒嗙被鍏宠仈鐨勫睘鎬� + * @param baseQueryObject 鏌ヨ瀵硅薄锛屽繀椤绘湁codeClassifyOid锛屾敮鎸乮d鍜宯ame涓ょ鏌ヨ鏉′欢(涓嶆敮鎸佸垎椤�) + * @return 灞炴�х殑淇℃伅锛屽寘鍚粯璁ょ殑灞炴�� + */ + @GetMapping("/listClassifyLinkAttr") + public DataGrid<BtmTypeAttributeVO> listClassifyLinkAttr(BaseQueryObject baseQueryObject){ + return codeClassifyService.listClassifyLinkAttr(baseQueryObject); + } + + /** + * 涓婚敭鑾峰彇涓婚搴撳垎绫� + * @param oid 涓婚敭 + * @return 涓婚搴撳垎绫绘樉绀哄璞� + */ + @GetMapping("/getObjectByOid") + public R<CodeClassifyVO> getObjectByOid(String oid){ + CodeClassifyVO codeClassifyVO = codeClassifyService.getObjectByOid(oid); + return R.data(codeClassifyVO); + } + + /** + * 浣跨敤缂栧彿鐨勮矾寰勮幏鍙栧璞� + * @param idPath 缂栧彿鐨勮矾寰勶紝涓�瀹氳浠庢渶椤跺眰鑺傜偣寮�濮嬶紝鏍煎紡涓簒xx/yyy/zz 杩欐牱 + * @return 鍒嗙被鐨勬樉绀哄璞� + */ + @GetMapping("/getObjectByIdPath") + public CodeClassifyVO getObjectByIdPath(String idPath){ + return codeClassifyService.getObjectByIdPath(idPath); + } + + /** + * 涓婚搴撶殑鏍� + * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄 + * @return 涓婚搴撴樉绀烘爲 + */ + @GetMapping("/treeTopCodeClassify") + public List<Tree> treeTopCodeClassify(TreeQueryObject treeQueryObject){ + return codeClassifyService.treeTopCodeClassify(treeQueryObject); + } + + /** + * 涓婚搴撳畾涔夎〃 璇︽儏 + */ + @GetMapping("/getObjectByClsfNamePath") + public R<CodeClassifyVO> getObjectByClsfNamePath(String clsfNamePath) { + CodeClassifyVO codeClassifyVO = codeClassifyService.getObjectByClsfNamePath(clsfNamePath); + return R.data(codeClassifyVO); + } +} -- Gitblit v1.9.3