package com.ruoyi.equity.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.core.domain.R; import com.ruoyi.equity.domain.dto.ShareholderInfoDTO; import com.ruoyi.equity.domain.vo.ShareholderInfoVO; import com.ruoyi.equity.domain.vo.ShareholderPicVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.catalina.User; import org.apache.poi.ss.formula.functions.T; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.equity.domain.ShareholderInfo; import com.ruoyi.equity.service.IShareholderInfoService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; import org.springframework.web.multipart.MultipartFile; /** * 股东信息Controller * * @author ruoyi * @date 2025-03-03 */ @Api(tags = "股东信息管理") @RestController @RequestMapping("/equity/info") public class ShareholderInfoController extends BaseController { @Autowired private IShareholderInfoService shareholderInfoService; /** * 获取股权结构图 */ @ApiOperation("获取股权结构图") @GetMapping("/getShareholderPic") public AjaxResult getShareholderPic() { ShareholderPicVO vo = shareholderInfoService.getShareholderPic(); return success(vo); } /** * 获取股东-根据股东状态 */ @ApiOperation("获取股东列表,根据股东状态1未入股2已入股") @GetMapping("/getNotShareholderList") public AjaxResult getNotShareholderList(Integer state) { List list = shareholderInfoService.getNotShareholderList(state); return success(list); } /** * 获取所有的公司 3.10根据需求,可以入股个人,所以返回所有上层节点 */ @ApiOperation("获取所有的公司") @GetMapping("/getAllCompany") public AjaxResult getAllCompany() { List list = shareholderInfoService.getAllCompany(); return success(list); } /** * 获取所有的股东 控制主体的股东,目前在用户页面有使用 */ @ApiOperation("获取所有的股东") @GetMapping("/getAllShareholder") public AjaxResult getAllShareholder() { List list = shareholderInfoService.list(new LambdaQueryWrapper() .select(ShareholderInfo::getShareholderId, ShareholderInfo::getShareholderName) .eq(ShareholderInfo::getNodeType, 1)); return success(list); } /** * 查询股东信息列表 * 3.11 因为下层增加了部门,所以说查询的时候先排除下层 */ @ApiOperation("获取股东列表") @PreAuthorize("@ss.hasPermi('equity:info:list')") @GetMapping("/list") public TableDataInfo list(ShareholderInfoDTO shareholderInfoDTO) { startPage(); List list = shareholderInfoService.selectShareholderInfoList(shareholderInfoDTO); return getDataTable(list); } /** * 获取股东信息详细信息 */ @ApiOperation("获取股东详细") @PreAuthorize("@ss.hasPermi('equity:info:query')") @GetMapping(value = "/{shareholderId}") public R getInfo(@PathVariable("shareholderId") Long shareholderId) { return R.ok(shareholderInfoService.selectShareholderInfoByShareholderId(shareholderId)); } /** * 新增股东信息 */ @ApiOperation("新增股东信息") @PreAuthorize("@ss.hasPermi('equity:info:add')") @Log(title = "股东信息", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ShareholderInfo shareholderInfo) { Boolean state = shareholderInfoService.insertShareholderInfo(shareholderInfo); return toAjax(state); } /** * 修改股东信息 */ @ApiOperation("修改股东信息") @PreAuthorize("@ss.hasPermi('equity:info:edit')") @Log(title = "股东信息", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ShareholderInfo shareholderInfo) { Boolean state = shareholderInfoService.updateShareholderInfo(shareholderInfo); return toAjax(state); } /** * 删除股东信息 */ @ApiOperation("删除股东信息") @PreAuthorize("@ss.hasPermi('equity:info:remove')") @Log(title = "股东信息", businessType = BusinessType.DELETE) @DeleteMapping("/{shareholderIds}") public AjaxResult remove(@PathVariable Long[] shareholderIds) { return toAjax(shareholderInfoService.deleteShareholderInfoByShareholderIds(shareholderIds)); } /** * 导出股东信息 */ @ApiOperation("导出股东信息") @PreAuthorize("@ss.hasPermi('equity:info:exportEquityInfo')") @PostMapping("/exportEquityInfo") public void exportEquityInfo(HttpServletResponse response) { List list = shareholderInfoService.selectShareholderInfoListByIds(); ExcelUtil util = new ExcelUtil<>(ShareholderInfoVO.class); util.hideColumn("controlledCompany"); util.convertByExp("shareholderType","1=个人主题,2=公司主体",""); util.exportExcel(response, list, "股东信息表"); } /** * 导入信息表 */ @ApiOperation("导入股东信息") @PreAuthorize("@ss.hasPermi('equity:info:importEquityInfo')") @PostMapping("/importEquityInfo") public AjaxResult importEquityInfo(MultipartFile file, boolean updateSupport) throws Exception { ExcelUtil util = new ExcelUtil<>(ShareholderInfo.class); List list = util.importExcel(file.getInputStream()); String operName = getUsername(); String message = shareholderInfoService.importEqityInfo(list, updateSupport,operName); return success(message); } /** * 获取所有的公司 3.10根据需求,可以入股个人,所以返回所有上层节点 */ @ApiOperation("获取所有的公司") @GetMapping("/getOnlyCompanyList") public AjaxResult getOnlyCompanyList() { List list = shareholderInfoService.selectOnlyCompany(); return success(list); } /** * 股东退股 */ @ApiOperation("股东退股") @GetMapping("/getExitShareholderId") public R shareHolderExit(Long shareholderId){ shareholderInfoService.exitUpdateById(shareholderId); return R.ok(); } }