123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361 |
- package com.ruoyi.web.controller.invest;
- import java.util.List;
- import java.util.stream.Collectors;
- import javax.servlet.http.HttpServletResponse;
- import com.ruoyi.common.config.RuoYiConfig;
- import com.ruoyi.common.enums.FileType;
- import com.ruoyi.common.utils.DateUtils;
- import com.ruoyi.common.utils.file.FileUploadUtils;
- import com.ruoyi.common.utils.file.FileUtils;
- import com.ruoyi.common.utils.uuid.IdUtils;
- import com.ruoyi.framework.config.ServerConfig;
- import com.ruoyi.invest.domain.TProjectCirculation;
- import com.ruoyi.invest.domain.TProjectCompany;
- import com.ruoyi.invest.domain.TProjectContacts;
- import com.ruoyi.invest.domain.TProjectPool;
- import com.ruoyi.invest.service.*;
- import com.ruoyi.system.service.ISysDictDataService;
- import com.ruoyi.tool.domain.TUnifyFile;
- import com.ruoyi.tool.service.ITUnifyFileService;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- 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.common.utils.poi.ExcelUtil;
- import com.ruoyi.common.core.page.TableDataInfo;
- import org.springframework.web.multipart.MultipartFile;
- /**
- * 项目池Controller
- *
- * @author ruoyi
- * @date 2024-02-21
- */
- @Api(tags = "项目池")
- @RestController
- @RequestMapping("/invest/pool")
- public class TProjectPoolController extends BaseController
- {
- @Autowired
- private ITProjectPoolService tProjectPoolService;
- @Autowired
- private ITProjectCompanyService tProjectCompanyService;
- @Autowired
- private ITProjectContactsService tProjectContactsService;
- @Autowired
- private ITProjectCirculationService tProjectCirculationService;
- @Autowired
- private ITUnifyFileService tUnifyFileService;
- @Autowired
- private ISysDictDataService dictDataService;
- @Autowired
- private ITProjectMeetingService tProjectMeetingService;
- @Autowired
- private ITProjectInvestigateService tProjectInvestigateService;
- /**
- * 查询项目池列表
- */
- @ApiOperation("查询项目池列表")
- @PreAuthorize("@ss.hasPermi('invest:pool:list')")
- @GetMapping("/list")
- public TableDataInfo list(TProjectPool tProjectPool)
- {
- startPage();
- List<TProjectPool> list = tProjectPoolService.selectTProjectPoolList(tProjectPool);
- return getDataTable(list);
- }
- /**
- * 查询评估考察列表
- */
- @ApiOperation("查询评估考察列表")
- @PreAuthorize("@ss.hasPermi('invest:pool:list')")
- @GetMapping("/listReview")
- public TableDataInfo listReview(TProjectPool tProjectPool)
- {
- startPage();
- tProjectPool.setCreateBy(getUserId().toString());
- List<TProjectPool> list = tProjectPoolService.selectTProjectPoolReviewList(tProjectPool);
- return getDataTable(list);
- }
- /**
- * 查询项目立项列表
- */
- @ApiOperation("查询项目立项列表")
- @PreAuthorize("@ss.hasPermi('invest:pool:list')")
- @GetMapping("/listApproval")
- public TableDataInfo listApproval(TProjectPool tProjectPool)
- {
- startPage();
- List<TProjectPool> list = tProjectPoolService.selectTProjectPoolList(tProjectPool).stream().map(n -> {
- n.settProjectMeeting(tProjectMeetingService.listProjectPoolIdNew(n.getId(),"LX"));
- return n;
- }).collect(Collectors.toList());
- return getDataTable(list);
- }
- /**
- * 查询尽职背调列表
- */
- @ApiOperation("查询尽职背调列表")
- @PreAuthorize("@ss.hasPermi('invest:pool:list')")
- @GetMapping("/listInvestigate")
- public TableDataInfo listInvestigate(TProjectPool tProjectPool)
- {
- startPage();
- List<TProjectPool> list = tProjectPoolService.selectTProjectPoolList(tProjectPool).stream().map(n -> {
- n.settProjectInvestigate(tProjectInvestigateService.listProjectPoolIdNew(n.getId()));
- return n;
- }).collect(Collectors.toList());
- return getDataTable(list);
- }
- /**
- * 查询项目投决列表
- */
- @ApiOperation("查询项目投决列表")
- @PreAuthorize("@ss.hasPermi('invest:pool:list')")
- @GetMapping("/listDecision")
- public TableDataInfo listDecision(TProjectPool tProjectPool)
- {
- startPage();
- List<TProjectPool> list = tProjectPoolService.selectTProjectPoolList(tProjectPool).stream().map(n -> {
- n.settProjectMeeting(tProjectMeetingService.listProjectPoolIdNew(n.getId(),"TJ"));
- return n;
- }).collect(Collectors.toList());
- return getDataTable(list);
- }
- /**
- * 导出项目池列表
- */
- @ApiOperation("导出项目池列表")
- @PreAuthorize("@ss.hasPermi('invest:pool:export')")
- @Log(title = "项目池", businessType = BusinessType.EXPORT)
- @PostMapping("/export")
- public void export(HttpServletResponse response, TProjectPool tProjectPool)
- {
- List<TProjectPool> list = tProjectPoolService.selectTProjectPoolList(tProjectPool)
- .stream().map(n -> {
- n.setChannel(n.gettProjectChannel().getChannelName());
- n.setIndustry(dictDataService.selectDictLabel("CUSTOMER_TRADE",n.getIndustry()));
- n.setCompany(n.gettProjectCompany().getCompanyName());
- n.setProjectContacts(n.gettProjectContacts().getName());
- n.setInvestType(dictDataService.selectDictLabel("INVEST_TYPE",n.getInvestType()));
- n.setInvestPloy(dictDataService.selectDictLabel("INVEST_PLOY",n.getInvestPloy()));
- n.setInvestWorth(dictDataService.selectDictLabel("INVEST_WORTH",n.getInvestWorth()));
- n.setProjectStage(dictDataService.selectDictLabel("PROJECT_STAGE",n.getProjectStage()));
- n.setProjectState(dictDataService.selectDictLabel("PROJECT_STATE",n.getProjectState()));
- return n;
- })
- .collect(Collectors.toList());
- ExcelUtil<TProjectPool> util = new ExcelUtil<TProjectPool>(TProjectPool.class);
- util.exportExcel(response, list, "项目池数据");
- }
- /**
- * 获取项目池详细信息
- */
- @ApiOperation("获取项目池详细信息")
- @PreAuthorize("@ss.hasPermi('invest:pool:query')")
- @GetMapping(value = "/{id}")
- public AjaxResult getInfo(@PathVariable("id") String id)
- {
- return success(tProjectPoolService.selectTProjectPoolById(id));
- }
- /**
- * 新增项目池
- */
- @ApiOperation("新增项目池")
- @PreAuthorize("@ss.hasPermi('invest:pool:add')")
- @Log(title = "项目池", businessType = BusinessType.INSERT)
- @PostMapping
- public AjaxResult add(@RequestBody TProjectPool tProjectPool)
- {
- // todo 设置主键及创建人
- tProjectPool.setCreateBy(getNickName());
- tProjectPool.setId(IdUtils.fastSimpleUUID());
- int number = tProjectPoolService.selectTProjectPoolCode(DateUtils.lastTwoDigits()+"-");
- tProjectPool.setProjectCode(tProjectPool.getProjectGroup() + "-" + DateUtils.lastTwoDigits() + "-" + String.format("%03d",number+1));
- TProjectCompany tProjectCompany = tProjectPool.gettProjectCompany();
- tProjectCompany.setCreateBy(getNickName());
- tProjectCompany.setId(IdUtils.fastSimpleUUID());
- TProjectContacts tProjectContacts = tProjectPool.gettProjectContacts();
- tProjectContacts.setCreateBy(getNickName());
- tProjectContacts.setId(IdUtils.fastSimpleUUID());
- // todo 设置项目联系人
- tProjectPool.setProjectContacts(tProjectContacts.getId());
- // todo 设置公司信息关联关系
- tProjectCompany.setProjectPoolId(tProjectPool.getId());
- // todo 保存公司附件信息
- List<TUnifyFile> tUnifyFileList = tProjectPool.getListFile();
- if(!tUnifyFileList.isEmpty()){
- for (TUnifyFile tUnifyFile:
- tUnifyFileList) {
- tUnifyFile.setFileId(tProjectPool.getId());
- tUnifyFile.setFileBusinessId(tProjectCompany.getId());//公司ID
- tUnifyFile.setUploadType(String.valueOf(FileType.COMPANY.ordinal()));//文件类型:公司信息
- tUnifyFile.setCreateBy(getNickName());
- tUnifyFileService.insertTUnifyFile(tUnifyFile);
- }
- }
- // todo 保存BP附件信息
- List<TUnifyFile> bpFileList = tProjectPool.getBpFile();
- if(!bpFileList.isEmpty()){
- for (TUnifyFile tUnifyFile:
- bpFileList) {
- tUnifyFile.setFileId(tProjectPool.getId());
- tUnifyFile.setFileBusinessId(tProjectPool.getId());//项目ID
- tUnifyFile.setUploadType(String.valueOf(FileType.BP.ordinal()));//文件类型:BP
- tUnifyFile.setCreateBy(getNickName());
- tUnifyFileService.insertTUnifyFile(tUnifyFile);
- }
- }
- // todo 保存其他附件信息
- List<TUnifyFile> otherFileList = tProjectPool.getOtherFile();
- if(!otherFileList.isEmpty()){
- for (TUnifyFile tUnifyFile:
- otherFileList) {
- tUnifyFile.setFileId(tProjectPool.getId());
- tUnifyFile.setFileBusinessId(tProjectPool.getId());//项目ID
- tUnifyFile.setUploadType(String.valueOf(FileType.OTHER.ordinal()));//文件类型:OTHER
- tUnifyFile.setCreateBy(getNickName());
- tUnifyFileService.insertTUnifyFile(tUnifyFile);
- }
- }
- tProjectCompanyService.insertTProjectCompany(tProjectCompany);
- tProjectContactsService.insertTProjectContacts(tProjectContacts);
- // todo 增加项目创建记录
- TProjectCirculation tProjectCirculation = new TProjectCirculation();
- tProjectCirculation.setProjectPoolId(tProjectPool.getId());
- tProjectCirculation.setStageName("项目报备");
- tProjectCirculation.setCreateBy(getNickName());
- tProjectCirculationService.insertTProjectCirculation(tProjectCirculation);
- return toAjax(tProjectPoolService.insertTProjectPool(tProjectPool));
- }
- /**
- * 修改项目池
- */
- @ApiOperation("修改项目池")
- @PreAuthorize("@ss.hasPermi('invest:pool:edit')")
- @Log(title = "项目池", businessType = BusinessType.UPDATE)
- @PutMapping
- public AjaxResult edit(@RequestBody TProjectPool tProjectPool)
- {
- tProjectPool.setUpdateBy(getNickName());
- TProjectCompany tProjectCompany = tProjectPool.gettProjectCompany();
- tProjectCompany.setUpdateBy(getNickName());
- TProjectContacts tProjectContacts = tProjectPool.gettProjectContacts();
- tProjectContacts.setUpdateBy(getNickName());
- tProjectContacts.setId(tProjectPool.getProjectContacts());
- // 上传并返回新文件名称
- // todo 保存附件信息
- List<TUnifyFile> tUnifyFileList = tProjectPool.getListFile();
- if(!tUnifyFileList.isEmpty()){
- for (TUnifyFile tUnifyFile:tUnifyFileList) {
- if(tUnifyFile.getId() == null){
- tUnifyFile.setFileId(tProjectPool.getId());
- tUnifyFile.setFileBusinessId(tProjectCompany.getId());//公司ID
- tUnifyFile.setUploadType(String.valueOf(FileType.COMPANY.ordinal()));//文件类型:公司信息
- tUnifyFile.setCreateBy(getNickName());
- tUnifyFileService.insertTUnifyFile(tUnifyFile);
- }
- }
- }
- // todo 保存BP附件信息
- List<TUnifyFile> bpFileList = tProjectPool.getBpFile();
- if(!bpFileList.isEmpty()){
- for (TUnifyFile tUnifyFile:bpFileList) {
- if(tUnifyFile.getId() == null){
- tUnifyFile.setFileId(tProjectPool.getId());
- tUnifyFile.setFileBusinessId(tProjectPool.getId());//项目ID
- tUnifyFile.setUploadType(String.valueOf(FileType.BP.ordinal()));//文件类型:BP
- tUnifyFile.setCreateBy(getNickName());
- tUnifyFileService.insertTUnifyFile(tUnifyFile);
- }
- }
- }
- // todo 保存其他附件信息
- List<TUnifyFile> otherFileList = tProjectPool.getOtherFile();
- if(!otherFileList.isEmpty()){
- for (TUnifyFile tUnifyFile:otherFileList) {
- if(tUnifyFile.getId() == null){
- tUnifyFile.setFileId(tProjectPool.getId());
- tUnifyFile.setFileBusinessId(tProjectPool.getId());//项目ID
- tUnifyFile.setUploadType(String.valueOf(FileType.OTHER.ordinal()));//文件类型:OTHER
- tUnifyFile.setCreateBy(getNickName());
- tUnifyFileService.insertTUnifyFile(tUnifyFile);
- }
- }
- }
- tProjectCompanyService.updateTProjectCompany(tProjectCompany);
- tProjectContactsService.updateTProjectContacts(tProjectContacts);
- return toAjax(tProjectPoolService.updateTProjectPool(tProjectPool));
- }
- /**
- * 删除项目池
- */
- @ApiOperation("删除项目池")
- @PreAuthorize("@ss.hasPermi('invest:pool:remove')")
- @Log(title = "项目池", businessType = BusinessType.DELETE)
- @DeleteMapping("/{ids}")
- public AjaxResult remove(@PathVariable String[] ids)
- {
- return toAjax(tProjectPoolService.updateTProjectPoolByIds(ids));
- }
- /**
- * 修改项目池状态
- */
- @ApiOperation("修改项目池状态")
- @PreAuthorize("@ss.hasPermi('invest:pool:edit')")
- @Log(title = "项目池", businessType = BusinessType.UPDATE)
- @PutMapping("/editStage")
- public AjaxResult editStage(@RequestBody TProjectPool tProjectPool)
- {
- tProjectPool.setUpdateBy(getNickName());
- // todo 增加项目创建记录
- TProjectCirculation tProjectCirculation = new TProjectCirculation();
- tProjectCirculation.setProjectPoolId(tProjectPool.getId());
- tProjectCirculation.setStageName(tProjectPool.getStageName() + "-" + tProjectPool.getStateName());
- tProjectCirculation.setCreateBy(getNickName());
- tProjectCirculationService.insertTProjectCirculation(tProjectCirculation);
- return toAjax(tProjectPoolService.updateTProjectPool(tProjectPool));
- }
- }
|