¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * 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.vo.pagemodel.CodeImProtRusultVO; |
| | | 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 lombok.extern.log4j.Log4j; |
| | | import lombok.extern.log4j.Log4j2; |
| | | 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 = "主é¢åºå®ä¹è¡¨æ¥å£") |
| | | @Log4j2 |
| | | 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åts屿§ |
| | | * @return æ§è¡ç»æ success为true为å¯ä»¥å é¤ï¼falseè¡¨ç¤ºææ°æ®å¼ç¨ |
| | | */ |
| | | @PostMapping( "/checkIsCanDelete") |
| | | public R checkIsCanDelete(@Valid @RequestBody CodeClassify codeClassify) { |
| | | return codeClassifyService.checkIsCanDelete(codeClassify); |
| | | } |
| | | |
| | | /** |
| | | * å é¤ä¸»é¢åºåç±» |
| | | * @param codeClassifyï¼oidåtséè¦ä¼ è¾ |
| | | * @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(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) { |
| | | //妿åºé,æé误信æ¯åå°text |
| | | 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) { |
| | | //妿åºé,æé误信æ¯åå°text |
| | | String msg = LangBaseUtil.getErrorMsg(e); |
| | | if(StringUtil.isBlank(msg)){ |
| | | msg = "æªç¥é误"; |
| | | } |
| | | ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 导å
¥åç±» |
| | | * @param file excelçå
容 |
| | | * @return æ§è¡ç»æï¼objæå¼è¡¨ç¤ºæé误信æ¯ï¼éè¦è®¿é®downloadErrorFileæ¥ä¸è½½ |
| | | */ |
| | | @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) { |
| | | log.error("导å
¥é误",e); |
| | | String errorFile = LocalFileUtil.getDefaultTempFolder() + File.separator + "é误信æ¯.txt"; |
| | | LocalFileUtil.writeContentToFile(LangBaseUtil.getErrorMsg(e),errorFile); |
| | | CodeImProtRusultVO codeImProtRusultVO =new CodeImProtRusultVO(); |
| | | codeImProtRusultVO.setRedisUuid(""); |
| | | codeImProtRusultVO.setFileOid(ControllerUtil.putErrorFile(errorFile)); |
| | | codeImProtRusultVO.setFilePath(errorFile); |
| | | R r = R.fail("导å
¥å¤±è´¥"); |
| | | r.setData(codeImProtRusultVO); |
| | | return r; |
| | | }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ï¼æ¯æidånameä¸¤ç§æ¥è¯¢æ¡ä»¶(䏿¯æå页) |
| | | * @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 ç¼å·çè·¯å¾ï¼ä¸å®è¦ä»æé¡¶å±èç¹å¼å§ï¼æ ¼å¼ä¸ºxxx/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); |
| | | } |
| | | |
| | | /** |
| | | * æµæ°´ä¾èµçæ |
| | | */ |
| | | @GetMapping("/flowingDependencyGen") |
| | | public R flowingDependencyGen(String classifyOid) { |
| | | return codeClassifyService.flowingDependencyGen(classifyOid); |
| | | } |
| | | |
| | | } |