| | |
| | | package com.vci.web.controller; |
| | | |
| | | import com.vci.constant.FrameWorkLangCodeConstant; |
| | | import com.vci.dto.OsAttributeDTO; |
| | | import com.vci.starter.web.annotation.log.VciBusinessLog; |
| | | import com.vci.starter.web.exception.VciBaseException; |
| | | import com.vci.starter.web.pagemodel.BaseQueryObject; |
| | | import com.vci.starter.web.pagemodel.DataGrid; |
| | | import com.vci.starter.web.pagemodel.BaseResult; |
| | | import com.vci.pagemodel.OsAttributeVO; |
| | | import com.vci.starter.web.pagemodel.Tree; |
| | | import com.vci.starter.web.pagemodel.TreeQueryObject; |
| | | import com.vci.starter.web.util.ControllerUtil; |
| | | import com.vci.starter.web.util.LocalFileUtil; |
| | | import com.vci.starter.web.util.VciBaseUtil; |
| | | import com.vci.web.service.OsAttributeServiceI; |
| | | import com.vci.starter.web.util.Lcm.Func; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 属性控制器 |
| | |
| | | private OsAttributeServiceI attributeService; |
| | | |
| | | /** |
| | | * 日志 |
| | | */ |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | /** |
| | | * 获取所有属性(树形结构) |
| | | * @return 查询结果 |
| | | */ |
| | | @GetMapping( "/getTreeAttributes") |
| | | @VciBusinessLog(operateName = "获取属性(树形结构)") |
| | | public BaseResult<List<Tree>> getTreeAttributesByBtmName(TreeQueryObject treeQueryObject){ |
| | | try { |
| | | List<Tree> trees = attributeService.getTreeAttributesByBtmName(treeQueryObject); |
| | | return BaseResult.dataList(trees); |
| | | // return BaseResult.tree(trees); |
| | | }catch (Throwable e) { |
| | | e.printStackTrace(); |
| | | String exceptionMessage = "查询业务类型时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e); |
| | | logger.error(exceptionMessage); |
| | | return BaseResult.fail(exceptionMessage); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 属性列表 |
| | | * @param baseQueryObject 查询对象 |
| | | * @return 属性的显示对象 |
| | | */ |
| | | @GetMapping("/gridAttribute") |
| | | public DataGrid<OsAttributeVO> gridAttribute(BaseQueryObject baseQueryObject){ |
| | | return attributeService.gridAttribute(baseQueryObject); |
| | | @VciBusinessLog(operateName = "属性列表") |
| | | public BaseResult<OsAttributeVO> gridAttribute(BaseQueryObject baseQueryObject){ |
| | | try { |
| | | return BaseResult.dataGrid(attributeService.gridAttribute(baseQueryObject)); |
| | | }catch (Exception e) { |
| | | e.printStackTrace(); |
| | | String exceptionMessage = "属性管理列表查询时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e); |
| | | logger.error(exceptionMessage); |
| | | return BaseResult.fail(exceptionMessage); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 根据多个属性名称查询属性 |
| | | * @param attrNames |
| | | * @return |
| | | */ |
| | | @GetMapping("/getByAttributeNames") |
| | | @VciBusinessLog(operateName = "根据多个属性名称查询属性") |
| | | public BaseResult getByAttributeNames(String[] attrNames){ |
| | | try { |
| | | return BaseResult.dataList(attributeService.getByAttributeNames(attrNames)); |
| | | }catch (Exception e) { |
| | | e.printStackTrace(); |
| | | String exceptionMessage = "属性名查询属性时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e); |
| | | logger.error(exceptionMessage); |
| | | return BaseResult.fail(exceptionMessage); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 添加单条属性到属性池 |
| | | * @param osAttributeDTO |
| | | * @return |
| | | */ |
| | | @PostMapping( "/addAttribute") |
| | | @VciBusinessLog(operateName = "添加属性") |
| | | public BaseResult addAttribute(@RequestBody OsAttributeDTO osAttributeDTO) { |
| | | try { |
| | | return attributeService.addAttribute(osAttributeDTO) ? BaseResult.success("属性添加成功!"):BaseResult.fail("属性添加失败!"); |
| | | }catch (Exception e) { |
| | | e.printStackTrace(); |
| | | String exceptionMessage = "增加属性时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e); |
| | | logger.error(exceptionMessage); |
| | | return BaseResult.fail(exceptionMessage); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 修改单条属性 |
| | | * @param osAttributeDTO |
| | | * @return 列表的内容 |
| | | */ |
| | | @PutMapping( "/updateAttribute") |
| | | @VciBusinessLog(operateName = "修改属性") |
| | | public BaseResult updateAttribute(@RequestBody OsAttributeDTO osAttributeDTO) { |
| | | try { |
| | | return attributeService.updateAttribute(osAttributeDTO) ? BaseResult.success("属性修改成功!"):BaseResult.fail("属性修改失败!"); |
| | | }catch (Exception e) { |
| | | e.printStackTrace(); |
| | | String exceptionMessage = "修改属性时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e); |
| | | logger.error(exceptionMessage); |
| | | return BaseResult.fail(exceptionMessage); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 删除属性 |
| | | * @param osAttributeDTOS |
| | | * @return 列表的内容 |
| | | */ |
| | | @DeleteMapping( "/deleteAttributes") |
| | | @VciBusinessLog(operateName = "删除属性") |
| | | public BaseResult deleteAttributes(@RequestBody List<OsAttributeDTO> osAttributeDTOS) { |
| | | try { |
| | | return attributeService.deleteAttributes(osAttributeDTOS) ? BaseResult.success("属性删除成功!"):BaseResult.fail("属性删除失败!"); |
| | | }catch (Exception e) { |
| | | e.printStackTrace(); |
| | | String exceptionMessage = "删除属性时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e); |
| | | logger.error(exceptionMessage); |
| | | return BaseResult.fail(exceptionMessage); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 查看属性的使用范围 |
| | | * @param attributeName 属性名称 |
| | | * @return map对象 |
| | | */ |
| | | @GetMapping( "/getUsedAttributeList") |
| | | @VciBusinessLog(operateName = "查看属性的使用范围") |
| | | public BaseResult getUsedAttributeList(String attributeName) { |
| | | try { |
| | | return BaseResult.dataList(attributeService.getUsedAttributeList(attributeName)); |
| | | }catch (Exception e) { |
| | | e.printStackTrace(); |
| | | String exceptionMessage = "获取属性的使用范围时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e); |
| | | logger.error(exceptionMessage); |
| | | return BaseResult.fail(exceptionMessage); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 导出选中的属性 |
| | | * @param exportFileName 导出的文件名 |
| | | * @param attrNames 需要导出的属性英文名称 |
| | | * @param response |
| | | */ |
| | | @GetMapping( "/exportAttributes") |
| | | @VciBusinessLog(operateName = "导出属性") |
| | | public void exportAttributes(String exportFileName,String attrNames, HttpServletResponse response){ |
| | | try { |
| | | String excelPath = attributeService.exportAttributes(exportFileName,attrNames,false); |
| | | ControllerUtil.writeFileToResponse(response,excelPath); |
| | | } catch (Exception e) { |
| | | String msg = "导出属性时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e); |
| | | try { |
| | | //出错时 |
| | | e.printStackTrace(); |
| | | ControllerUtil.writeDataToResponse(response,"error_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss") + ".txt", StringUtils.isNotBlank(msg)?msg.getBytes():new byte[0],null); |
| | | } catch (IOException ioException) { |
| | | ioException.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 下载属性导入模板 |
| | | * @param exportFileName |
| | | * @param response |
| | | */ |
| | | @GetMapping( "/downloadAttributeTemplate") |
| | | @VciBusinessLog(operateName = "导出属性") |
| | | public void downloadAttributeTemplate(String exportFileName, HttpServletResponse response){ |
| | | try { |
| | | String excelPath = attributeService.downloadAttributeTemplate(exportFileName); |
| | | ControllerUtil.writeFileToResponse(response,excelPath); |
| | | } catch (Exception e) { |
| | | String msg = "下载枚举导入模板时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e); |
| | | try { |
| | | //出错时 |
| | | e.printStackTrace(); |
| | | ControllerUtil.writeDataToResponse(response,"error_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss") + ".txt", StringUtils.isNotBlank(msg)?msg.getBytes():new byte[0],null); |
| | | } catch (IOException ioException) { |
| | | ioException.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 导入属性 |
| | | * @param file |
| | | * @return |
| | | */ |
| | | @PostMapping("/importAttributes") |
| | | @VciBusinessLog(operateName = "导入属性") |
| | | public BaseResult importAttributes(MultipartFile file){ |
| | | String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + LocalFileUtil.getFileNameForIE(file.getOriginalFilename()); |
| | | File file1 = new File(excelFileName); |
| | | try { |
| | | file.transferTo(new File(excelFileName)); |
| | | if (file != null) { |
| | | return attributeService.importAttributes(file1,false); |
| | | } else { |
| | | return BaseResult.fail(FrameWorkLangCodeConstant.IMPORT_FAIL, new String[]{"无导入的文件"}); |
| | | } |
| | | }catch (Throwable e) { |
| | | throw new VciBaseException(VciBaseUtil.getExceptionMessage(e),new String[0],e); |
| | | }finally { |
| | | file1.delete(); |
| | | } |
| | | } |
| | | |
| | | } |