package com.gkhy.labRiskManage.api.controller.experiment; import cn.hutool.json.JSONObject; import com.gkhy.labRiskManage.api.controller.common.BaseController; import com.gkhy.labRiskManage.api.controller.experiment.converter.ExperimentApiConverter; import com.gkhy.labRiskManage.api.controller.experiment.dto.req.ExperimentDevelopUpdateReqBO; import com.gkhy.labRiskManage.api.controller.experiment.dto.req.ExperimentInfoQueryReqBO; import com.gkhy.labRiskManage.api.controller.experiment.dto.req.ExperimentInsertReqBO; import com.gkhy.labRiskManage.api.controller.experiment.dto.resp.*; import com.gkhy.labRiskManage.application.experiment.dto.bo.*; import com.gkhy.labRiskManage.application.experiment.dto.dto.*; import com.gkhy.labRiskManage.application.experiment.service.ExperimentAppService; import com.gkhy.labRiskManage.commons.domain.Result; import com.gkhy.labRiskManage.commons.domain.SearchResult; import com.gkhy.labRiskManage.commons.enums.ResultCode; import com.gkhy.labRiskManage.commons.model.PageQuery; import com.gkhy.labRiskManage.commons.utils.BeanCopyUtils; import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentInfo; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** * 实验信息 */ @RestController @RequestMapping("experimentInfo") public class ExperimentInfoController extends BaseController { @Autowired private ExperimentAppService experimentAppService; @Autowired private ExperimentApiConverter converter; /** * 录入信息 * @param experimentInsertReqBO * @return */ @PostMapping(value = "/save") public Result save(@RequestBody ExperimentInsertReqBO experimentInsertReqBO){ Result result = new Result(); result.setCode(ResultCode.OK); result.setMsg("新增成功"); experimentAppService.save(getCurrentUserId(),experimentInsertReqBO); return result; } @PostMapping(value = "/temporary") public Result temporary(@RequestBody ExperimentInsertReqBO experimentInsertReqBO){ Result result = new Result(); result.setCode(ResultCode.OK); result.setMsg("暂存成功"); experimentAppService.temporary(getCurrentUserId(),experimentInsertReqBO); return result; } /** * 录入信息 * @param experimentInsertReqBO * @return */ @PostMapping(value = "develop/save") public Result developSave(@RequestBody ExperimentInsertReqBO experimentInsertReqBO){ Result result = new Result(); result.setCode(ResultCode.OK); result.setMsg("新增成功"); experimentAppService.developSave(getCurrentUserId(),experimentInsertReqBO); return result; } @PostMapping(value = "develop/temporary") public Result developTemporary(@RequestBody ExperimentInsertReqBO experimentInsertReqBO){ Result result = new Result(); result.setCode(ResultCode.OK); result.setMsg("暂存成功"); experimentAppService.developTemporary(getCurrentUserId(),experimentInsertReqBO); return result; } @PostMapping(value = "rectify/save") public Result rectifySave(@RequestBody ExperimentInsertReqBO experimentInsertReqBO){ Result result = new Result(); result.setCode(ResultCode.OK); result.setMsg("已申请整改"); int insertResult = experimentAppService.rectifySave(getCurrentUserId(),experimentInsertReqBO); result.setCount(insertResult); if (insertResult < 1){ result.setCode(ResultCode.NOT_OK); result.setMsg("申请整改失败"); } result.setCount(insertResult); return result; } /** * 开展实验 * @param developUpdateReqBOList * @return */ @PostMapping(value = "/update/develop") public Result updateDevelop(@RequestBody List developUpdateReqBOList){ Result result = new Result(); result.setCode(ResultCode.OK); result.setMsg("实验开展成功"); List appDevelopUpdateBOList = new ArrayList<>(); if (!CollectionUtils.isEmpty(developUpdateReqBOList)) { appDevelopUpdateBOList = BeanCopyUtils.copyBeanList(developUpdateReqBOList,ExperimentAppDevelopUpdateBO.class); } int updateResult = experimentAppService.updateDevelop(getCurrentUserId(),appDevelopUpdateBOList); result.setCount(updateResult); if (updateResult < 1){ result.setCode(ResultCode.NOT_OK); result.setMsg("实验开展失败"); } result.setCount(updateResult); return result; } /** * 申请评估 * @param ids * @return */ @PostMapping(value = "/update/apply/evaluation") public Result applyEvaluation(@RequestBody List ids){ Result result = new Result(); result.setCode(ResultCode.OK); result.setMsg("申请成功"); int insertResult = experimentAppService.applyEvaluation(getCurrentUserId(),ids); result.setCount(insertResult); if (insertResult < 1){ result.setCode(ResultCode.NOT_OK); result.setMsg("申请失败"); } result.setCount(insertResult); return result; } @PostMapping(value = "/update/revoke/apply/evaluation") public Result revokeApplyEvaluation(@RequestBody List ids){ Result result = new Result(); result.setCode(ResultCode.OK); result.setMsg("撤销申请成功"); int insertResult = experimentAppService.revokeApplyEvaluation(getCurrentUserId(),ids); result.setCount(insertResult); if (insertResult < 1){ result.setCode(ResultCode.NOT_OK); result.setMsg("撤销申请失败"); } result.setCount(insertResult); return result; } /** * 删除 * @param jsonObject * @return */ @PostMapping(value = "/delete") public Result delete(@RequestBody JSONObject jsonObject){ Result result = new Result(); result.setCode(ResultCode.OK); result.setMsg("删除成功"); int deleteResult = experimentAppService.deleteById(jsonObject.getLong("id"),getCurrentUserId()); result.setCount(deleteResult); if (deleteResult < 1){ result.setCode(ResultCode.NOT_OK); result.setMsg("删除失败"); } result.setCount(deleteResult); return result; } /** * 新立项 * @param pageQueryReqBO * @return */ @PostMapping("/list/page/project") public SearchResult projectListByPage(@RequestBody PageQuery pageQueryReqBO){ SearchResult result = new SearchResult(); result.setCode(ResultCode.OK); result.setMsg("查询成功"); SearchResult> searchResult = experimentAppService.projectListByPage(converter.getAppPageQuery(pageQueryReqBO),getCurrentUserId()); List experimentInfoAppQueryDTOList = (List)searchResult.getData(); result.setPageIndex(searchResult.getPageIndex()); result.setPageSize(searchResult.getPageSize()); result.setTotal(searchResult.getTotal()); result.setCount(searchResult.getTotal().intValue()); result.setPages(searchResult.getPages()); result.setData(converter.getExperimentInfoRespDTO(experimentInfoAppQueryDTOList)); return result; } /** * 已开展 * @param pageQueryReqBO * @return */ @PostMapping("/list/page/develop") public SearchResult developListByPage(@RequestBody PageQuery pageQueryReqBO){ SearchResult result = new SearchResult(); result.setCode(ResultCode.OK); result.setMsg("查询成功"); SearchResult> searchResult = experimentAppService.developListByPage(converter.getAppPageQuery(pageQueryReqBO),getCurrentUserId()); List experimentInfoAppQueryDTOList = (List)searchResult.getData(); result.setPageIndex(searchResult.getPageIndex()); result.setPageSize(searchResult.getPageSize()); result.setTotal(searchResult.getTotal()); result.setCount(searchResult.getTotal().intValue()); result.setPages(searchResult.getPages()); result.setData(converter.getExperimentInfoRespDTO(experimentInfoAppQueryDTOList)); return result; } /** * 获取实验列表 */ @GetMapping("/list") public Result getExperimentInfoList(){ SearchResult result = new SearchResult(); result.setCode(ResultCode.OK); result.setMsg("查询成功"); List experimentInfoAppVos = experimentAppService.getExperimentInfoList(getCurrentUserId()); result.setData(converter.getExperimentInfoVoRespDTO(experimentInfoAppVos)); return result; } /** * 已申请评估分页 * @param pageQueryReqBO * @return */ @PostMapping("/list/page/apply/evaluation") public SearchResult applyEvaluationListByPage(@RequestBody PageQuery pageQueryReqBO){ SearchResult result = new SearchResult(); result.setCode(ResultCode.OK); result.setMsg("查询成功"); SearchResult> searchResult = experimentAppService.applyEvaluationListByPage(converter.getAppPageQuery(pageQueryReqBO),getCurrentUserId()); List experimentInfoAppQueryDTOList = (List)searchResult.getData(); result.setPageIndex(searchResult.getPageIndex()); result.setPageSize(searchResult.getPageSize()); result.setTotal(searchResult.getTotal()); result.setCount(searchResult.getTotal().intValue()); result.setPages(searchResult.getPages()); result.setData(converter.getExperimentInfoRespDTO(experimentInfoAppQueryDTOList)); return result; } }