| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 | package com.ozs.web.controller.pm;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import com.baomidou.mybatisplus.core.metadata.IPage;import com.ozs.common.annotation.Log;import com.ozs.common.constant.ModularConstans;import com.ozs.common.core.domain.entity.SysUser;import com.ozs.common.core.domain.model.LoginUser;import com.ozs.common.enums.BusinessType;import com.ozs.common.utils.StringUtils;import com.ozs.framework.web.service.TokenService;import com.ozs.pm.doman.PmDemand;import com.ozs.pm.doman.PmDemandHis;import com.ozs.pm.doman.vo.requestVo.PmBookBuildingReqVo;import com.ozs.pm.doman.vo.requestVo.PmDemandReqVo;import com.ozs.pm.doman.vo.responseVo.PmDemandResVo;import com.ozs.pm.service.IPmDemandService;import com.ozs.pm.service.PmDemandHisService;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.security.access.prepost.PreAuthorize;import org.springframework.util.ObjectUtils;import org.springframework.web.bind.annotation.*;import com.ozs.common.core.controller.BaseController;import com.ozs.common.core.domain.AjaxResult;import javax.servlet.http.HttpServletRequest;import javax.validation.constraints.NotEmpty;import java.util.*;/** * 采购需求Controller * * @author ruoyi * @date 2023-01-16 */@Api(tags = "采购需求")@RestController@RequestMapping("/pm/demand")public class PmDemandController extends BaseController {    @Autowired    private IPmDemandService pmDemandService;    @Autowired    private TokenService tokenService;    @Autowired    private PmDemandHisService pmDemandHisService;    /**     * 查询采购需求列表     */    @ApiOperation(value = "查询采购需求列表", notes = "参数非必传")    @PostMapping("/list")    @PreAuthorize("@ss.hasPermi('pm:demand:list')")    @Log(title = ModularConstans.demand, businessType = BusinessType.QUERY)    public AjaxResult list(@RequestBody PmDemandReqVo pmDemandReqVo) {        pmDemandReqVo.setDeptId(getDeptId());        pmDemandReqVo.setIsAdmin(SysUser.isAdmin(getUserId()));        pmDemandReqVo.setUserId(getUserId());        IPage<PmDemandResVo> page = pmDemandService.selectPmDemandList(pmDemandReqVo, 0);        return success(page);    }    /**     * 查看详情     */    @ApiOperation(value = "查看详情", notes = "必传demandId和详情类型(1项目计划,2需求建档,3任务下达,4中标信息,5合同信息,6建设情况),其他字段不传")    @PostMapping("/view")//    @PreAuthorize("@ss.hasPermi('pm:demand:view')")  首页去除权限    @Log(title = ModularConstans.demand, businessType = BusinessType.QUERY)    public AjaxResult view(@RequestBody PmDemandReqVo pmDemandReqVo) {        if(pmDemandReqVo.getDemandId() == null){            return AjaxResult.error("demandId不能为空");        }        if(StringUtils.isEmpty(pmDemandReqVo.getDetailType())){            return AjaxResult.error("详情的类型不能为空");        }        return success(pmDemandService.selectPmDemandByDemandId(pmDemandReqVo.getDemandId(),pmDemandReqVo.getDetailType()));    }    /**     * 获取回退下拉列表     */    @ApiOperation(value = "获取回退下拉列表", notes = "必传demandId")    @GetMapping("/getReturnList")    @PreAuthorize("@ss.hasPermi('pm:demand:getReturnList')")    @Log(title = ModularConstans.demand, businessType = BusinessType.QUERY)    public AjaxResult getReturnList(@NotEmpty(message = "需求ID不能为空")                                    @RequestParam(value = "demandId", required = true) Long demandId) {        List< Map<String,Integer>> list = new ArrayList<>();        LambdaQueryWrapper<PmDemandHis> lambdaQueryWrapper = new LambdaQueryWrapper<>();        lambdaQueryWrapper.eq(PmDemandHis::getDemandId,demandId).orderByAsc(PmDemandHis::getReturnOrderNumber);        List<PmDemandHis> pmDemandHisList = this.pmDemandHisService.list(lambdaQueryWrapper);        if(!ObjectUtils.isEmpty(pmDemandHisList)){            Map<String,Integer> map = new HashMap<>();            map.put("当前信息",0);            list.add(map);            for (PmDemandHis pmDemandHis : pmDemandHisList) {                Map<String,Integer> map2 = new HashMap<>();                map2.put("第" + pmDemandHis.getReturnOrderNumber() + "回退",pmDemandHis.getReturnOrderNumber());                list.add(map2);            }        }        return success(list);    }    /**     * 查看历史详情     */    @ApiOperation(value = "查看历史详情", notes = "必传demandId和详情类型(1项目计划,2需求建档,3任务下达,4中标信息,5合同信息,6建设情况),必传returnOrderNumber(回退序号,0当前/1第一次回退/2第二次回退...),其他字段不传")    @PostMapping("/viewHis")    @PreAuthorize("@ss.hasPermi('pm:demand:viewHis')")    @Log(title = ModularConstans.demand, businessType = BusinessType.QUERY)    public AjaxResult viewHis(@RequestBody PmDemandReqVo pmDemandReqVo) {        if(pmDemandReqVo.getDemandId() == null){            return AjaxResult.error("demandId不能为空");        }        if(ObjectUtils.isEmpty(pmDemandReqVo.getDetailType())){            return AjaxResult.error("详情的类型不能为空");        }        if(ObjectUtils.isEmpty(pmDemandReqVo.getReturnOrderNumber())){            return AjaxResult.error("回退序号不能为空");        }        if(0 == pmDemandReqVo.getReturnOrderNumber()){            return success(pmDemandService.selectPmDemandByDemandId(pmDemandReqVo.getDemandId(),pmDemandReqVo.getDetailType()));        } else {            return success(pmDemandHisService.selectPmDemandHisByDemandId(pmDemandReqVo.getDemandId(),pmDemandReqVo.getDetailType(),pmDemandReqVo.getReturnOrderNumber()));        }    }    /**     * 需求建档     */    @ApiOperation(value = "需求建档", notes = "必传demandId,根据项目类型必传pmDemandEngineeringResponseVo(3:工程类)、pmDemandEquipResponseVo(0:装备类)、pmDemandMaterialsResponseVo(1:物资类)、pmDemandServeResponseVo(2:服务类)其中之一")    @PostMapping("/bookBuilding")    @PreAuthorize("@ss.hasPermi('pm:demand:bookBuilding')")    @Log(title = ModularConstans.demand, businessType = BusinessType.INSERT)    public AjaxResult bookBuilding(@NotEmpty(message = "数据为空") @RequestBody PmBookBuildingReqVo pmBookBuildingReqVo, HttpServletRequest request) {        try {            if (pmBookBuildingReqVo.getDemandId() == null) {                return AjaxResult.error("demandId不能为空");            }            PmDemand pmDemand = pmDemandService.getById(pmBookBuildingReqVo.getDemandId());            if (ObjectUtils.isEmpty(pmDemand)) {                return error("demandId参数错误");            }            if (ObjectUtils.isEmpty(pmBookBuildingReqVo.getBudgetAmount())) {                return error("预算金额不能为空");            }            if (ObjectUtils.isEmpty(pmBookBuildingReqVo.getDemandCommitTime())) {                return error("需求提报时间不能为空");            }            LoginUser loginUser = tokenService.getLoginUser(request);            pmBookBuildingReqVo.setCreateBy(String.valueOf(loginUser.getUserId()));            pmBookBuildingReqVo.setCreateTime(new Date());            pmBookBuildingReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));            pmBookBuildingReqVo.setUpdateTime(pmBookBuildingReqVo.getCreateTime());            return toAjax(pmDemandService.bookBuilding(pmBookBuildingReqVo));        } catch (Exception e) {            return error(e.getMessage());        }    }    @ApiOperation(value = "提交采购需求", notes = "必传demandId,其他字段不传")    @PostMapping("/commit")    @PreAuthorize("@ss.hasPermi('pm:demand:commit')")    @Log(title = ModularConstans.demand, businessType = BusinessType.UPDATE)    public AjaxResult commit(@RequestBody PmDemandReqVo pmDemandReqVo, HttpServletRequest request) {        if(pmDemandReqVo.getDemandId() == null){            return AjaxResult.error("demandId不能为空");        }        LoginUser loginUser = tokenService.getLoginUser(request);        pmDemandReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));        return toAjax(pmDemandService.commit(pmDemandReqVo));    }    /**     * 查看流程图,获取当前阶段名字     */    @ApiOperation(value = "查看流程图,获取当前阶段名字", notes = "必传demandId,其他字段不传")    @PostMapping("/viewFlowChart")    @PreAuthorize("@ss.hasPermi('pm:demand:viewFlowChart')")    @Log(title = ModularConstans.demand, businessType = BusinessType.QUERY)    public AjaxResult viewFlowChart(@RequestBody PmDemandReqVo pmRequestVo) {        if(pmRequestVo.getDemandId() == null){            return AjaxResult.error("demandId不能为空");        }        return success(pmDemandService.viewFlowChart(pmRequestVo.getDemandId()));    }    /**     * 审核单位查询采购需求列表     */    @ApiOperation(value = "审核单位查询采购需求列表", notes = "参数非必传")    @PostMapping("/examineList")    @PreAuthorize("@ss.hasPermi('pm:examine:list')")    @Log(title = ModularConstans.demandExamine, businessType = BusinessType.QUERY)    public AjaxResult examineList(@RequestBody PmDemandReqVo pmDemandReqVo) {        pmDemandReqVo.setIsAdmin(SysUser.isAdmin(getUserId()));        pmDemandReqVo.setDeptId(getDeptId());        pmDemandReqVo.setUserId(getUserId());        IPage<PmDemandResVo> page = pmDemandService.selectPmDemandList(pmDemandReqVo, 1);        return success(page);    }    @ApiOperation(value = "审核采购需求通过", notes = "必传demandId和上传附件,其他字段不传")    @PostMapping("/reviewTo")    @PreAuthorize("@ss.hasPermi('pm:examine:reviewTo')")    @Log(title = ModularConstans.demandExamine, businessType = BusinessType.UPDATE)    public AjaxResult reviewTo(@RequestBody PmDemandReqVo pmDemandReqVo, HttpServletRequest request) {        if(pmDemandReqVo.getDemandId() == null){            return AjaxResult.error("demandId不能为空");        }        if(pmDemandReqVo.getSysFileRefs() == null || pmDemandReqVo.getSysFileRefs().size() == 0){            return AjaxResult.error("上传附件不能为空");        }        LoginUser loginUser = tokenService.getLoginUser(request);        pmDemandReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));        return toAjax(pmDemandService.reviewTo(pmDemandReqVo));    }    @ApiOperation(value = "审核采购需求退回", notes = "必传demandId和退回原因,其他字段不传")    @PostMapping("/reviewReturn")    @PreAuthorize("@ss.hasPermi('pm:examine:reviewReturn')")    @Log(title = ModularConstans.demandExamine, businessType = BusinessType.UPDATE)    public AjaxResult reviewReturn(@RequestBody PmDemandReqVo pmDemandReqVo, HttpServletRequest request) {        if(pmDemandReqVo.getDemandId() == null){            return AjaxResult.error("demandId不能为空");        }        if(StringUtils.isEmpty(pmDemandReqVo.getRefuseReason())){            return AjaxResult.error("退回原因不能为空");        }        LoginUser loginUser = tokenService.getLoginUser(request);        pmDemandReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));        return toAjax(pmDemandService.reviewReturn(pmDemandReqVo));    }}
 |