package com.zd.chemical.controller; import com.zd.chemical.domain.ActHxpapply; import com.zd.chemical.domain.vo.*; import com.zd.chemical.service.IActHxpapplyService; import com.zd.chemical.util.ChemicalUtils; import com.zd.common.core.annotation.Log; import com.zd.common.core.annotation.PreAuthorize; import com.zd.common.core.log.BusinessType; import com.zd.common.core.utils.ExcelUtil; import com.zd.common.core.utils.SecurityUtils; import com.zd.common.core.web.controller.BaseController; import com.zd.model.domain.ResultData; import com.zd.model.domain.per.PerFun; import com.zd.model.domain.per.PerPrefix; import com.zd.model.page.TableDataInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; /** * 化学品申购Controller * * @author zd * @date 2022-08-17 */ @RestController @Api(tags = "【化学品申购】") @RequestMapping("/hxpapply") public class ActHxpapplyController extends BaseController { @Autowired private IActHxpapplyService actHxpapplyService; /** * 查询化学品申购列表 */ @PreAuthorize(hasPermi = PerPrefix.ACT_HXP_APPLY + PerFun.LIST) @GetMapping("/list") @ApiOperation(value = "查询化学品申购列表") public TableDataInfo list(ActHxpapplySearch actHxpapplySearch) { startPage(); List list = actHxpapplyService.selectActHxpapplyList(actHxpapplySearch); //去除小数点后多余的0 if (list != null && list.size() > 0) { list.stream().forEach(vo -> { vo.setChemicalNames(ChemicalUtils.removeZeroForAfterPoint(vo.getChemicalNames())); }); } TableDataInfo info = new TableDataInfo<>(); info.getDataTable(list); return info; } /** * 查询化学品申购列表(草稿箱) */ @PreAuthorize(hasPermi = PerPrefix.ACT_HXP_APPLY + PerFun.DRAFTSLIST) @GetMapping("/draftsList") @ApiOperation(value = "查询化学品申购列表(草稿箱)") public TableDataInfo draftsList(ActHxpapplySearch actHxpapplySearch) { actHxpapplySearch.setUserId(SecurityUtils.getUserId()); startPage(); List list = actHxpapplyService.draftsList(actHxpapplySearch); //去除小数点后多余的0 if (list != null && list.size() > 0) { list.stream().forEach(vo -> { vo.setChemicalNames(ChemicalUtils.removeZeroForAfterPoint(vo.getChemicalNames())); }); } TableDataInfo info = new TableDataInfo<>(); info.getDataTable(list); return info; } /** * 查询化学品申购列表(学生端接口) */ @GetMapping("/myList") @ApiOperation(value = "查询化学品申购列表") public TableDataInfo mylist(ActHxpapplySearch actHxpapplySearch) { startPage(); actHxpapplySearch.setUserId(SecurityUtils.getUserId()); List list = actHxpapplyService.selectActHxpapplyList(actHxpapplySearch); //去除小数点后多余的0 if (list != null && list.size() > 0) { list.stream().forEach(vo -> { vo.setChemicalNames(ChemicalUtils.removeZeroForAfterPoint(vo.getChemicalNames())); }); } TableDataInfo info = new TableDataInfo<>(); info.getDataTable(list); return info; } /** * 查询化学品申购列表(学生端草稿箱) */ @GetMapping("/myDraftsList") @ApiOperation(value = "查询化学品申购列表(草稿箱)") public TableDataInfo myDraftsList(ActHxpapplySearch actHxpapplySearch) { startPage(); actHxpapplySearch.setUserId(SecurityUtils.getUserId()); List list = actHxpapplyService.draftsList(actHxpapplySearch); TableDataInfo info = new TableDataInfo<>(); info.getDataTable(list); return info; } /** * 导出化学品申购列表 */ @ApiOperation(value = "导出化学品申购列表") @PreAuthorize(hasPermi = PerPrefix.ACT_HXP_APPLY + PerFun.EXPORT) @Log(title = "化学品申购", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ActHxpapplySearch actHxpapplySearch) throws IOException { List list = actHxpapplyService.selectActHxpapplyList(actHxpapplySearch); Optional.ofNullable(list).orElseGet(Collections::emptyList) .stream() .forEach(a -> { StringBuffer currentApprover = new StringBuffer(); Optional.ofNullable(a.getCurrentUserList()).orElseGet(Collections::emptyList) .stream() .forEach(b -> { currentApprover.append(","); currentApprover.append(b.get("name")); }); if (currentApprover.length() > 0) { a.setCurrentApprover(currentApprover.substring(1)); } StringBuffer historyApprover = new StringBuffer(); Optional.ofNullable(a.getHistoryUserList()).orElseGet(Collections::emptyList) .stream() .forEach(b -> { historyApprover.append(","); historyApprover.append(b.get("name")); }); if (historyApprover.length() > 0) { a.setHistoryApprover(historyApprover.substring(1)); } }); ExcelUtil util = new ExcelUtil(ActHxpapplyListVo.class); util.exportExcel(response, list, "化学品申购数据"); } /** * 获取化学品申购详细信息 */ @ApiOperation(value = "获取化学品申购详细信息") @PreAuthorize(hasPermi = PerPrefix.ACT_HXP_APPLY + PerFun.QUERY) @GetMapping(value = "/{id}") public ResultData getInfo(@PathVariable("id") Long id) { ActHxpapplyInfoVo vo = actHxpapplyService.selectActHxpapplyById(id, 2); //去除无效小数点 if (vo != null) { List list = vo.getActHxpapplyDetailList(); if (list != null && list.size() > 0) { list.stream().forEach(detailVo -> { detailVo.setApplyNum(ChemicalUtils.removeZeroForAfterPoint(detailVo.getApplyNum())); detailVo.setRemainingStorage(ChemicalUtils.removeZeroForAfterPoint(detailVo.getRemainingStorage())); }); } } return ResultData.success(vo); } /** * 获取化学品申购详细信息(审批记录调用) */ @ApiOperation(value = "获取化学品申购详细信息") @PreAuthorize(hasPermi = PerPrefix.ACT_HXP_APPLYAUDIT + PerFun.QUERY) @GetMapping(value = "/audit/{id}") public ResultData auditByGetInfo(@PathVariable("id") Long id) { return ResultData.success(actHxpapplyService.selectActHxpapplyById(id, 1)); } /** * 获取化学品申购详细信息(学生端接口) */ @ApiOperation(value = "获取化学品申购详细信息(学生端接口)") @GetMapping(value = "/myInfo/{id}") public ResultData getMyInfo(@PathVariable("id") Long id) { return ResultData.success(actHxpapplyService.selectActHxpapplyById(id, 2)); } /** * 新增化学品申购 */ @ApiOperation(value = "新增化学品申购") @PreAuthorize(hasPermi = PerPrefix.ACT_HXP_APPLY + PerFun.ADD) @Log(title = "化学品申购", businessType = BusinessType.INSERT) @PostMapping public ResultData add(@RequestBody ActHxpapplyVo actHxpapplyVo) { return ResultData.result(actHxpapplyService.insertActHxpapply(actHxpapplyVo)); } /** * 新增化学品申购(学生端接口) */ @ApiOperation(value = "新增化学品申购(学生端接口)") @Log(title = "化学品申购", businessType = BusinessType.INSERT) @PostMapping("/myadd") public ResultData myadd(@RequestBody ActHxpapplyVo actHxpapplyVo) { return ResultData.result(actHxpapplyService.insertActHxpapply(actHxpapplyVo)); } /** * 修改化学品申购 */ @ApiOperation(value = "修改化学品申购") // @PreAuthorize(hasPermi = "laboratory:hxpapply:edit") @Log(title = "化学品申购", businessType = BusinessType.UPDATE) @PutMapping public ResultData edit(@RequestBody ActHxpapply actHxpapply) { return ResultData.result(actHxpapplyService.updateActHxpapply(actHxpapply)); } /** * 删除化学品申购 */ @ApiOperation(value = "删除化学品申购") @PreAuthorize(hasPermi = PerPrefix.ACT_HXP_APPLY + PerFun.REMOVE) @Log(title = "化学品申购", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public ResultData remove(@PathVariable Long[] ids) { return ResultData.result(actHxpapplyService.deleteActHxpapplyByIds(ids)); } /** * 删除化学品申购(学生端接口) */ @ApiOperation(value = "删除化学品申购(学生端接口)") @Log(title = "化学品申购", businessType = BusinessType.DELETE) @DeleteMapping("/myDel/{ids}") public ResultData myDel(@PathVariable Long[] ids) { return ResultData.result(actHxpapplyService.deleteActHxpapplyByIds(ids)); } /** * 获取化学品剩余可存放量 */ @ApiOperation(value = "获取化学品剩余可存放量") @GetMapping(value = "/getRestStock") public ResultData> getRestStock(ActRestStockVo actRestStockVo) { return ResultData.success(actHxpapplyService.getRestStock(actRestStockVo)); } /** * 获取化学品剩余可存放量(化学品存放用,一个化学品多个机柜用) */ @ApiOperation(value = "获取化学品剩余可存放量") @GetMapping(value = "/getRestStockByManyCabinet") public ResultData> getRestStockByManyCabinet(ActRestStockManySearch actRestStockVo) { List list = actHxpapplyService.getRestStockByManyCabinet(actRestStockVo); //去除小数点后多余的0 if (list != null && list.size() > 0) { list.stream().forEach(vo -> { vo.setRestStock(ChemicalUtils.removeZeroForAfterPoint(vo.getRestStock())); }); } return ResultData.success(list); } }