suntianwu 2 anni fa
parent
commit
79e5e56933

+ 59 - 31
purchase-admin/src/main/java/com/ozs/web/controller/pm/PmDemandController.java

@@ -2,24 +2,23 @@ package com.ozs.web.controller.pm;
 
 import java.util.List;
 
-import com.ozs.pm.doman.PmDemand;
-import com.ozs.pm.doman.vo.requestVo.PmRequestVo;
-import com.ozs.pm.doman.vo.responseVo.PmDemandResponseVo;
+import com.github.pagehelper.PageInfo;
+import com.ozs.common.core.domain.model.LoginUser;
+import com.ozs.framework.web.service.TokenService;
+import com.ozs.pm.doman.vo.requestVo.PmBookBuildingReqVo;
+import com.ozs.pm.doman.vo.requestVo.PmReqVo;
+import com.ozs.pm.doman.vo.responseVo.PmDemandResVo;
 import com.ozs.pm.service.IPmDemandService;
-import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.annotations.ApiOperation;
 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.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-import com.ozs.common.annotation.Log;
 import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.domain.AjaxResult;
-import com.ozs.common.enums.BusinessType;
-import com.ozs.common.core.page.TableDataInfo;
+
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * 采购需求Controller
@@ -29,44 +28,73 @@ import com.ozs.common.core.page.TableDataInfo;
  */
 @RestController
 @RequestMapping("/system/demand")
-public class PmDemandController extends BaseController
-{
+public class PmDemandController extends BaseController {
     @Autowired
     private IPmDemandService pmDemandService;
+    @Autowired
+    private TokenService tokenService;
 
     /**
      * 查询采购需求列表
      */
-    @PreAuthorize("@ss.hasPermi('system:demand:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(@RequestBody PmRequestVo pmDemand)
-    {
-        startPage();
-        List<PmDemandResponseVo> list = pmDemandService.selectPmDemandList(pmDemand);
-        return getDataTable(list);
+    @ApiOperation(value = "查询采购需求列表", notes = "参数非必传")
+    @PostMapping("/list")
+    public AjaxResult list(@RequestBody PmReqVo pmReqVo) {
+        List<PmDemandResVo> list = pmDemandService.selectPmDemandList(pmReqVo);
+        PageInfo<PmDemandResVo> page = new PageInfo<>(list);
+        return success(page);
     }
 
     /**
      * 获取采购需求详细信息
      */
-    @PreAuthorize("@ss.hasPermi('system:demand:query')")
-    @GetMapping(value = "/{demandId}")
-    public AjaxResult getInfo(@PathVariable("demandId") Long demandId)
-    {
-        return success(pmDemandService.selectPmDemandByDemandId(demandId));
+    @ApiOperation(value = "获取采购需求详细信息", notes = "必传demandId,其他字段不传")
+    @PostMapping("/view")
+    public AjaxResult view(@RequestBody PmReqVo pmReqVo) {
+        return success(pmDemandService.selectPmDemandByDemandId(pmReqVo.getDemandId()));
     }
 
+    /**
+     * 需求建档
+     */
+    @ApiOperation(value = "需求建档", notes = "必传demandId,根据类型必传pmDemandEngineeringResponseVo、pmDemandEquipResponseVo、pmDemandMaterialsResponseVo、pmDemandServeResponseVo")
+    @PostMapping("/bookBuilding")
+    public AjaxResult bookBuilding(@RequestBody PmBookBuildingReqVo pmBookBuildingReqVo) {
+        return toAjax(pmDemandService.bookBuilding(pmBookBuildingReqVo));
+    }
 
     /**
-     * 修改采购需求
+     * 查看流程图
      */
-    @PreAuthorize("@ss.hasPermi('system:demand:edit')")
-    @Log(title = "采购需求", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody PmDemand pmDemand)
-    {
-        return toAjax(pmDemandService.updatePmDemand(pmDemand));
+    @ApiOperation(value = "查看流程图", notes = "必传demandId,其他字段不传")
+    @PostMapping("/viewFlowChart")
+    public AjaxResult viewFlowChart(@RequestBody PmReqVo pmRequestVo) {
+        return success(pmDemandService.viewFlowChart(pmRequestVo.getDemandId()));
     }
 
 
+    @ApiOperation(value = "提交采购需求", notes = "必传demandId,其他字段不传")
+    @PostMapping("/commit")
+    public AjaxResult commit(@RequestBody PmReqVo pmReqVo, HttpServletRequest request) {
+        LoginUser loginUser = tokenService.getLoginUser(request);
+        pmReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
+        return toAjax(pmDemandService.commit(pmReqVo));
+    }
+
+    @ApiOperation(value = "审核采购需求通过", notes = "必传demandId和上传附件,其他字段不传")
+    @PostMapping("/reviewTo")
+    public AjaxResult reviewTo(@RequestBody PmReqVo pmReqVo, HttpServletRequest request) {
+        LoginUser loginUser = tokenService.getLoginUser(request);
+        pmReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
+        return toAjax(pmDemandService.reviewTo(pmReqVo));
+    }
+
+    @ApiOperation(value = "审核采购需求退回", notes = "必传demandId和退回原因,其他字段不传")
+    @PostMapping("/reviewReturn")
+    public AjaxResult reviewReturn(@RequestBody PmReqVo pmReqVo, HttpServletRequest request) {
+        LoginUser loginUser = tokenService.getLoginUser(request);
+        pmReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
+        return toAjax(pmDemandService.reviewReturn(pmReqVo));
+    }
+
 }

+ 9 - 8
purchase-common/src/main/java/com/ozs/common/enums/PmProjectStatus.java

@@ -8,14 +8,15 @@ package com.ozs.common.enums;
 public enum PmProjectStatus {
     DEMAND_WAIT_FILL("4", "需求待填制"),
     DEMAND_WAIT_COMMIT("5", "需求待提交"),
-    TASK_WAIT_RELEASE("6", "任务待下达"),
-    TASK_RELEASED("7", "任务已下达"),
-    BID_INFO_WAIT_FILL("8", "中标信息待填制"),
-    BID_INFO_FILLED("9", "中标信息已填制"),
-    CONTRACT_WAIT_FILL("10", "合同待填制"),
-    CONTRACT_FILLED("11", "合同已填制"),
-    UNDER_CONSTRUCTION("12", "项目建设中"),
-    COMPLETION_CONSTRUCTION("13", "项目建设完成");
+    DEMAND_WAIT_AUDIT("6", "需求待审核"),
+    TASK_WAIT_RELEASE("7", "任务待下达"),
+    TASK_RELEASED("8", "任务已下达"),
+    BID_INFO_WAIT_FILL("9", "中标信息待填制"),
+    BID_INFO_FILLED("10", "中标信息已填制"),
+    CONTRACT_WAIT_FILL("11", "合同待填制"),
+    CONTRACT_FILLED("12", "合同已填制"),
+    UNDER_CONSTRUCTION("13", "项目建设中"),
+    COMPLETION_CONSTRUCTION("14", "项目建设完成");
 
     private final String code;
     private final String info;

+ 6 - 1
purchase-common/src/main/java/com/ozs/common/enums/SysFileRefEnum.java

@@ -12,7 +12,12 @@ public enum SysFileRefEnum {
     PLAN_YEAR(1, "年度计划附件"),
     PLAN_TEMPORARY(2, "临时、季度计划附件"),
     PLAN_YEAR_EXAMINE(3, "年度计划审核文件"),
-
+    PM_DEMAND(4, "采购需求附件"),
+    PM_DEMAND_EQUIP(5, "采购需求装备类附件"),
+    PM_DEMAND_MATERIALS(6, "采购需求物资类附件"),
+    PM_DEMAND_SERVE(7, "采购需求服务类附件"),
+    PM_DEMAND_ENGINEERING(8, "采购需求工程类附件"),
+    PM_DEMAND_EXAMINE(9, "采购需求审核文件")
     ;
 
     private Integer type;

+ 48 - 0
purchase-system/src/main/java/com/ozs/pm/doman/vo/requestVo/PmBookBuildingReqVo.java

@@ -0,0 +1,48 @@
+package com.ozs.pm.doman.vo.requestVo;
+
+
+import com.ozs.pm.doman.vo.responseVo.PmDemandEngineeringResVo;
+import com.ozs.pm.doman.vo.responseVo.PmDemandEquipResVo;
+import com.ozs.pm.doman.vo.responseVo.PmDemandMaterialsResVo;
+import com.ozs.pm.doman.vo.responseVo.PmDemandServeResVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * 采购需求对象 pm_demand
+ *
+ * @author ruoyi
+ * @date 2023-01-16
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("采购需求对象")
+public class PmBookBuildingReqVo
+{
+    /** 主键 */
+    @ApiModelProperty("主键")
+    private Long demandId;
+
+    /** 采购需求工程类对象 */
+    @ApiModelProperty("采购需求工程类对象")
+    private PmDemandEngineeringResVo pmDemandEngineeringResponseVo;
+
+    /** 采购需求装备类对象 */
+    @ApiModelProperty("采购需求装备类对象")
+    private PmDemandEquipResVo pmDemandEquipResponseVo;
+
+    /** 采购需求物资类对象 */
+    @ApiModelProperty("采购需求物资类对象")
+    private PmDemandMaterialsResVo pmDemandMaterialsResponseVo;
+
+    /** 采购需求服务类对象 */
+    @ApiModelProperty("采购需求服务类对象")
+    private PmDemandServeResVo pmDemandServeResponseVo;
+}

+ 71 - 0
purchase-system/src/main/java/com/ozs/pm/doman/vo/requestVo/PmReqVo.java

@@ -0,0 +1,71 @@
+package com.ozs.pm.doman.vo.requestVo;
+
+import com.ozs.common.vo.PageVo;
+import com.ozs.system.domain.SysFileRef;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+
+/**
+ * 采购需求对象 pm_demand
+ *
+ * @author ruoyi
+ * @date 2023-01-16
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("采购需求对象")
+public class PmReqVo extends PageVo
+{
+    /** 主键 */
+    @ApiModelProperty("主键")
+    private Long demandId;
+
+    /** 项目名称 */
+    @ApiModelProperty("项目名称")
+    private String projectName;
+
+    /** 采购服务站 */
+    @ApiModelProperty("采购服务站")
+    private String purchaseServiceStation;
+
+
+    /** 项目状态(4:需求待填制,5:需求待提交,6:需求待审核,7:任务待下达,8:任务已下达,9:中标信息待填制,10:中标信息已填制,11:合同待填制,12:合同已填制,13:项目建设中,14:项目建设完成) */
+    @ApiModelProperty("项目状态(4:需求待填制,5:需求待提交,6:需求待审核,7:任务待下达,8:任务已下达,9:中标信息待填制,10:中标信息已填制,11:合同待填制,12:合同已填制,13:项目建设中,14:项目建设完成)")
+    private Long projectStatus;
+
+    /** 是否为超限额计划(0:未超额,1:超额) */
+    @ApiModelProperty("是否为超限额计划(0:未超额,1:超额)")
+    private Integer isExcess;
+
+    /** 开始日期 */
+    @ApiModelProperty("开始日期")
+    private String beginDate;
+
+    /** 结束日期 */
+    @ApiModelProperty("结束日期")
+    private String endDate;
+
+    /** 退回原因 */
+    @ApiModelProperty("退回原因")
+    private String refuseReason;
+    /**
+     * 更改者
+     */
+    @ApiModelProperty("更改者")
+    private String updateBy;
+
+    /**
+     * 上传附件
+     */
+    @ApiModelProperty("上传附件")
+    private List<SysFileRef> sysFileRefs;
+}

+ 0 - 50
purchase-system/src/main/java/com/ozs/pm/doman/vo/requestVo/PmRequestVo.java

@@ -1,50 +0,0 @@
-package com.ozs.pm.doman.vo.requestVo;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ozs.common.annotation.Excel;
-import com.ozs.common.core.domain.BaseEntity;
-import io.swagger.annotations.ApiModel;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.math.BigDecimal;
-import java.util.Date;
-
-/**
- * 采购需求对象 pm_demand
- *
- * @author ruoyi
- * @date 2023-01-16
- */
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-@Builder
-@ApiModel("采购需求对象")
-public class PmRequestVo
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 项目名称 */
-    @Excel(name = "项目名称")
-    private String projectName;
-
-    /** 采购服务站 */
-    @Excel(name = "采购服务站")
-    private String purchaseServiceStation;
-
-
-    /** 项目状态(4:需求待填制,5:需求待提交,6:需求待审核,7:任务待下达,8:任务已下达,9:中标信息待填制,10:中标信息已填制,11:合同待填制,12:合同已填制,13:项目建设中,14:项目建设完成) */
-    @Excel(name = "项目状态(4:需求待填制,5:需求待提交,6:需求待审核,7:任务待下达,8:任务已下达,9:中标信息待填制,10:中标信息已填制,11:合同待填制,12:合同已填制,13:项目建设中,14:项目建设完成)")
-    private Long projectStatus;
-
-    /** 开始日期 */
-    @Excel(name = "开始日期")
-    private String beginDate;
-
-    /** 结束日期 */
-    @Excel(name = "结束日期")
-    private String endDate;
-}

+ 1 - 1
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmDemandEngineeringResponseVo.java

@@ -23,7 +23,7 @@ import java.util.HashMap;
 @NoArgsConstructor
 @Builder
 @ApiModel("采购需求工程类对象")
-public class PmDemandEngineeringResponseVo extends BaseEntity
+public class PmDemandEngineeringResVo extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
 

+ 1 - 1
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmDemandEquipResponseVo.java

@@ -25,7 +25,7 @@ import java.util.HashMap;
 @NoArgsConstructor
 @Builder
 @ApiModel("采购需求装备类对象")
-public class PmDemandEquipResponseVo extends BaseEntity
+public class PmDemandEquipResVo extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
 

+ 1 - 1
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmDemandMaterialsResponseVo.java

@@ -25,7 +25,7 @@ import java.util.HashMap;
 @NoArgsConstructor
 @Builder
 @ApiModel("采购需求物资类对象")
-public class PmDemandMaterialsResponseVo extends BaseEntity {
+public class PmDemandMaterialsResVo extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
     /**

+ 14 - 7
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmDemandResponseVo.java

@@ -25,7 +25,7 @@ import java.util.HashMap;
 @NoArgsConstructor
 @Builder
 @ApiModel("采购需求对象")
-public class PmDemandResponseVo extends BaseEntity
+public class PmDemandResVo extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
 
@@ -201,22 +201,29 @@ public class PmDemandResponseVo extends BaseEntity
 
     /** 采购需求工程类对象 */
     @ApiModelProperty("采购需求工程类对象")
-    private PmDemandEngineeringResponseVo pmDemandEngineeringResponseVo;
+    private PmDemandEngineeringResVo pmDemandEngineeringResponseVo;
 
     /** 采购需求装备类对象 */
     @ApiModelProperty("采购需求装备类对象")
-    private PmDemandEquipResponseVo pmDemandEquipResponseVo;
+    private PmDemandEquipResVo pmDemandEquipResponseVo;
 
     /** 采购需求物资类对象 */
     @ApiModelProperty("采购需求物资类对象")
-    private PmDemandMaterialsResponseVo pmDemandMaterialsResponseVo;
+    private PmDemandMaterialsResVo pmDemandMaterialsResponseVo;
 
     /** 采购需求服务类对象 */
     @ApiModelProperty("采购需求服务类对象")
-    private PmDemandServeResponseVo pmDemandServeResponseVo;
+    private PmDemandServeResVo pmDemandServeResponseVo;
 
     /**
-     * 上传附件的URL
+     * 采购需求附件
      */
-    HashMap<String, String> fileMap;
+    @ApiModelProperty("采购需求附件")
+    HashMap<String, String> demandFileMap;
+
+    /**
+     * 采购需求审核文件
+     */
+    @ApiModelProperty("采购需求审核文件")
+    HashMap<String, String> auditFileMap;
 }

+ 1 - 1
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmDemandServeResponseVo.java

@@ -23,7 +23,7 @@ import java.util.HashMap;
 @NoArgsConstructor
 @Builder
 @ApiModel("采购需求服务类对象")
-public class PmDemandServeResponseVo extends BaseEntity
+public class PmDemandServeResVo extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
 

+ 47 - 8
purchase-system/src/main/java/com/ozs/pm/service/IPmDemandService.java

@@ -1,8 +1,10 @@
 package com.ozs.pm.service;
 
+
 import com.ozs.pm.doman.PmDemand;
-import com.ozs.pm.doman.vo.requestVo.PmRequestVo;
-import com.ozs.pm.doman.vo.responseVo.PmDemandResponseVo;
+import com.ozs.pm.doman.vo.requestVo.PmBookBuildingReqVo;
+import com.ozs.pm.doman.vo.requestVo.PmReqVo;
+import com.ozs.pm.doman.vo.responseVo.PmDemandResVo;
 
 import java.util.List;
 
@@ -21,15 +23,15 @@ public interface IPmDemandService
      * @param demandId 采购需求主键
      * @return 采购需求
      */
-    public PmDemandResponseVo selectPmDemandByDemandId(Long demandId);
+    public PmDemandResVo selectPmDemandByDemandId(Long demandId);
 
     /**
      * 查询采购需求列表
      * 
-     * @param pmDemand 采购需求
+     * @param pmReqVo 采购需求
      * @return 采购需求集合
      */
-    public List<PmDemandResponseVo> selectPmDemandList(PmRequestVo pmDemand);
+    public List<PmDemandResVo> selectPmDemandList(PmReqVo pmReqVo);
 
     /**
      * 新增采购需求
@@ -38,14 +40,51 @@ public interface IPmDemandService
      * @return 结果
      */
     public int insertPmDemand(PmDemand pmDemand);
-
     /**
-     * 修改采购需求
-     * 
+     *修改采购需求
+     *
      * @param pmDemand 采购需求
      * @return 结果
      */
     public int updatePmDemand(PmDemand pmDemand);
 
+    /**
+     * 需求建档
+     * 
+     * @param pmBookBuildingReqVo 需求建档
+     * @return 结果
+     */
+    public int bookBuilding(PmBookBuildingReqVo pmBookBuildingReqVo);
+
+    /**
+     * 查看流程图
+     *
+     * @param demandId 采购需求主键
+     * @return 采购需求
+     */
+    public PmDemandResVo viewFlowChart(Long demandId);
+
+    /**
+     * 提交采购需求
+     *
+     * @param pmReqVo
+     * @return 结果
+     */
+    public int commit(PmReqVo pmReqVo);
+
+    /**
+     * 审核采购需求通过
+     *
+     * @param pmReqVo
+     * @return 结果
+     */
+    public int reviewTo(PmReqVo pmReqVo);
 
+    /**
+     * 审核采购需求退回
+     *
+     * @param pmReqVo
+     * @return 结果
+     */
+    public int reviewReturn(PmReqVo pmReqVo);
 }

+ 124 - 34
purchase-system/src/main/java/com/ozs/pm/service/impl/PmDemandServiceImpl.java

@@ -7,7 +7,8 @@ import com.ozs.common.utils.DateUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.bean.BeanUtils;
 import com.ozs.pm.doman.*;
-import com.ozs.pm.doman.vo.requestVo.PmRequestVo;
+import com.ozs.pm.doman.vo.requestVo.PmBookBuildingReqVo;
+import com.ozs.pm.doman.vo.requestVo.PmReqVo;
 import com.ozs.pm.doman.vo.responseVo.*;
 import com.ozs.pm.mapper.PmDemandMapper;
 import com.ozs.pm.service.*;
@@ -59,11 +60,10 @@ public class PmDemandServiceImpl implements IPmDemandService
      * @return 采购需求
      */
     @Override
-    public PmDemandResponseVo selectPmDemandByDemandId(Long demandId)
-    {
+    public PmDemandResVo selectPmDemandByDemandId(Long demandId) {
         PmDemand pmDemand = pmDemandMapper.selectPmDemandByDemandId(demandId);
         if(pmDemand != null){
-            PmDemandResponseVo vo = new PmDemandResponseVo();
+            PmDemandResVo vo = new PmDemandResVo();
             BeanUtils.copyProperties(pmDemand, vo);
 
             SysDeptResponseVo sysDeptResponseVo = (SysDeptResponseVo) deptService.selectDeptById(vo.getPurchaseDeptId()).get("sysDept");
@@ -76,9 +76,14 @@ public class PmDemandServiceImpl implements IPmDemandService
                 vo.setPurchaseServicesName(purchaseServicesName);
             }
 
-            HashMap<String, String> fileMap = getFileMap(vo.getDemandId(),"4");
-            if(fileMap != null){
-                vo.setFileMap(fileMap);
+            HashMap<String, String> demandFileMap = getFileMap(vo.getDemandId(),SysFileRefEnum.PM_DEMAND.getType());
+            if(demandFileMap != null){
+                vo.setDemandFileMap(demandFileMap);
+            }
+
+            HashMap<String, String> auditFileMap = getFileMap(vo.getDemandId(),SysFileRefEnum.PM_DEMAND_EXAMINE.getType());
+            if(auditFileMap != null){
+                vo.setAuditFileMap(auditFileMap);
             }
 
             //项目类型
@@ -131,7 +136,7 @@ public class PmDemandServiceImpl implements IPmDemandService
                 obj.setDemandId(demandId);
                 List<PmDemandEquip> list = iPmDemandEquipService.selectPmDemandEquipList(obj);
                 if(list !=null && list.size() > 0){
-                    PmDemandEquipResponseVo responseVo = new PmDemandEquipResponseVo();
+                    PmDemandEquipResVo responseVo = new PmDemandEquipResVo();
                     BeanUtils.copyProperties(list.get(0),responseVo);
                     //采购方式建议
                     for (ProcurementMethodSuggest value : ProcurementMethodSuggest.values()) {
@@ -141,9 +146,9 @@ public class PmDemandServiceImpl implements IPmDemandService
                         }
                     }
 
-                    HashMap<String, String> fileMap1 = getFileMap(vo.getDemandId(),"5");
+                    HashMap<String, String> fileMap1 = getFileMap(vo.getDemandId(),SysFileRefEnum.PM_DEMAND_EQUIP.getType());
                     if(fileMap1 != null){
-                        vo.setFileMap(fileMap1);
+                        responseVo.setFileMap(fileMap1);
                     }
 
                     vo.setPmDemandEquipResponseVo(responseVo);
@@ -153,7 +158,7 @@ public class PmDemandServiceImpl implements IPmDemandService
                 obj.setDemandId(demandId);
                 List<PmDemandMaterials> list = iPmDemandMaterialsService.selectPmDemandMaterialsList(obj);
                 if(list !=null && list.size() > 0){
-                    PmDemandMaterialsResponseVo responseVo = new PmDemandMaterialsResponseVo();
+                    PmDemandMaterialsResVo responseVo = new PmDemandMaterialsResVo();
                     BeanUtils.copyProperties(list.get(0),responseVo);
                     //采购方式建议
                     for (ProcurementMethodSuggest value : ProcurementMethodSuggest.values()) {
@@ -162,9 +167,9 @@ public class PmDemandServiceImpl implements IPmDemandService
                             break;
                         }
                     }
-                    HashMap<String, String> fileMap2 = getFileMap(vo.getDemandId(),"6");
+                    HashMap<String, String> fileMap2 = getFileMap(vo.getDemandId(),SysFileRefEnum.PM_DEMAND_MATERIALS.getType());
                     if(fileMap2 != null){
-                        vo.setFileMap(fileMap2);
+                        responseVo.setFileMap(fileMap2);
                     }
                     vo.setPmDemandMaterialsResponseVo(responseVo);
                 }
@@ -173,7 +178,7 @@ public class PmDemandServiceImpl implements IPmDemandService
                 obj.setDemandId(demandId);
                 List<PmDemandServe> list = iPmDemandServeService.selectPmDemandServeList(obj);
                 if(list !=null && list.size() > 0){
-                    PmDemandServeResponseVo responseVo = new PmDemandServeResponseVo();
+                    PmDemandServeResVo responseVo = new PmDemandServeResVo();
                     BeanUtils.copyProperties(list.get(0),responseVo);
                     //采购方式建议
                     for (ProcurementMethodSuggest value : ProcurementMethodSuggest.values()) {
@@ -182,9 +187,9 @@ public class PmDemandServiceImpl implements IPmDemandService
                             break;
                         }
                     }
-                    HashMap<String, String> fileMap3 = getFileMap(vo.getDemandId(),"7");
+                    HashMap<String, String> fileMap3 = getFileMap(vo.getDemandId(),SysFileRefEnum.PM_DEMAND_SERVE.getType());
                     if(fileMap3 != null){
-                        vo.setFileMap(fileMap3);
+                        responseVo.setFileMap(fileMap3);
                     }
                     vo.setPmDemandServeResponseVo(responseVo);
                 }
@@ -193,7 +198,7 @@ public class PmDemandServiceImpl implements IPmDemandService
                 obj.setDemandId(demandId);
                 List<PmDemandEngineering> list = iPmDemandEngineeringService.selectPmDemandEngineeringList(obj);
                 if(list !=null && list.size() > 0){
-                    PmDemandEngineeringResponseVo responseVo = new PmDemandEngineeringResponseVo();
+                    PmDemandEngineeringResVo responseVo = new PmDemandEngineeringResVo();
                     BeanUtils.copyProperties(list.get(0),responseVo);
                     //采购方式建议
                     for (ProcurementMethodSuggest value : ProcurementMethodSuggest.values()) {
@@ -223,9 +228,9 @@ public class PmDemandServiceImpl implements IPmDemandService
                             break;
                         }
                     }
-                    HashMap<String, String> fileMap4 = getFileMap(vo.getDemandId(),"8");
+                    HashMap<String, String> fileMap4 = getFileMap(vo.getDemandId(),SysFileRefEnum.PM_DEMAND_ENGINEERING.getType());
                     if(fileMap4 != null){
-                        vo.setFileMap(fileMap4);
+                        responseVo.setFileMap(fileMap4);
                     }
                     vo.setPmDemandEngineeringResponseVo(responseVo);
                 }
@@ -240,25 +245,25 @@ public class PmDemandServiceImpl implements IPmDemandService
     /**
      * 查询采购需求列表
      *
-     * @param requestVo
+     * @param pmReqVo
      * @return 采购需求
      */
     @Override
-    public List<PmDemandResponseVo> selectPmDemandList(PmRequestVo requestVo)
-    {
+    public List<PmDemandResVo> selectPmDemandList(PmReqVo pmReqVo) {
         PmDemand pmDemand = new PmDemand();
-        pmDemand.setProjectName(requestVo.getProjectName());
-        pmDemand.setPurchaseServices(requestVo.getPurchaseServiceStation());
-        pmDemand.setProjectStatus(requestVo.getProjectStatus());
+        pmDemand.setProjectName(pmReqVo.getProjectName());
+        pmDemand.setPurchaseServices(pmReqVo.getPurchaseServiceStation());
+        pmDemand.setProjectStatus(pmReqVo.getProjectStatus());
+        pmDemand.setIsExcess(pmReqVo.getIsExcess());
         Map<String,Object> params = new HashMap<>();
-        params.put("beginDate",requestVo.getBeginDate());
-        params.put("endDate",requestVo.getEndDate());
+        params.put("beginDate",pmReqVo.getBeginDate());
+        params.put("endDate",pmReqVo.getEndDate());
         pmDemand.setParams(params);
         List<PmDemand> pmDemandList = pmDemandMapper.selectPmDemandList(pmDemand);
-        List<PmDemandResponseVo> pmDemandResponseVoList = new ArrayList<>();
+        List<PmDemandResVo> pmDemandResponseVoList = new ArrayList<>();
         if(pmDemandList != null && !pmDemandList.isEmpty()){
             for(PmDemand pmDemand1 : pmDemandList){
-                PmDemandResponseVo vo = new PmDemandResponseVo();
+                PmDemandResVo vo = new PmDemandResVo();
                 BeanUtils.copyBeanProp(pmDemand1,vo);
                 SysDeptResponseVo sysDeptResponseVo = (SysDeptResponseVo) deptService.selectDeptById(vo.getPurchaseDeptId()).get("sysDept");
                 if(sysDeptResponseVo != null){
@@ -327,8 +332,7 @@ public class PmDemandServiceImpl implements IPmDemandService
      * @return 结果
      */
     @Override
-    public int insertPmDemand(PmDemand pmDemand)
-    {
+    public int insertPmDemand(PmDemand pmDemand) {
         pmDemand.setCreateTime(DateUtils.getNowDate());
         return pmDemandMapper.insertPmDemand(pmDemand);
     }
@@ -340,13 +344,26 @@ public class PmDemandServiceImpl implements IPmDemandService
      * @return 结果
      */
     @Override
-    public int updatePmDemand(PmDemand pmDemand)
-    {
+    public int updatePmDemand(PmDemand pmDemand) {
+        pmDemand.setUpdateTime(DateUtils.getNowDate());
+        return pmDemandMapper.updatePmDemand(pmDemand);
+    }
+
+    /**
+     * 需求建档
+     *
+     * @param pmBookBuildingReqVo 采购需求
+     * @return 结果
+     */
+    @Override
+    public int bookBuilding(PmBookBuildingReqVo pmBookBuildingReqVo) {
+        PmDemand pmDemand = new PmDemand();
+        pmDemand.setDemandId(pmBookBuildingReqVo.getDemandId());
         pmDemand.setUpdateTime(DateUtils.getNowDate());
         return pmDemandMapper.updatePmDemand(pmDemand);
     }
 
-    private HashMap<String, String> getFileMap(Long redId,String type){
+    private HashMap<String, String> getFileMap(Long redId,Integer type){
         HashMap<String, Object> map = new HashMap<>();
         map.put("red_id", redId);
         map.put("type", type);
@@ -363,4 +380,77 @@ public class PmDemandServiceImpl implements IPmDemandService
         }
 
     }
+
+
+    /**
+     * 查看流程图
+     *
+     * @param demandId 采购需求主键
+     * @return 采购需求
+     */
+    @Override
+    public PmDemandResVo viewFlowChart(Long demandId) {
+        PmDemandResVo pmDemandResVo = new PmDemandResVo();
+        return pmDemandResVo;
+    }
+
+    /**
+     * 提交采购需求
+     *
+     * @param pmReqVo
+     * @return 结果
+     */
+    @Override
+    public int commit(PmReqVo pmReqVo) {
+        PmDemand pmDemand = new PmDemand();
+        pmDemand.setDemandId(pmReqVo.getDemandId());
+        pmDemand.setProjectStatus(Long.parseLong(PmProjectStatus.DEMAND_WAIT_AUDIT.getCode()));
+        pmDemand.setUpdateTime(DateUtils.getNowDate());
+        return pmDemandMapper.updatePmDemand(pmDemand);
+    }
+
+    /**
+     * 审核采购需求通过
+     *
+     * @param pmReqVo
+     * @return 结果
+     */
+    @Override
+    public int reviewTo(PmReqVo pmReqVo) {
+        PmDemand pmDemand = new PmDemand();
+        pmDemand.setDemandId(pmReqVo.getDemandId());
+        pmDemand.setProjectStatus(Long.parseLong(PmProjectStatus.TASK_WAIT_RELEASE.getCode()));
+        List<SysFileRef> sysFileRefs = pmReqVo.getSysFileRefs();
+        if (!ObjectUtils.isEmpty(sysFileRefs)) {
+            for (SysFileRef ref : sysFileRefs) {
+                ref.setRedId(pmReqVo.getDemandId());
+                ref.setType(SysFileRefEnum.PM_DEMAND_EXAMINE.getType());
+                ref.setCreated(pmReqVo.getUpdateBy());
+                ref.setCreateTime(new Date());
+                ref.setUpdated(pmReqVo.getUpdateBy());
+                ref.setUpdateTime(new Date());
+                sysFileRefService.save(ref);
+            }
+        }
+        pmDemand.setUpdateTime(DateUtils.getNowDate());
+        pmDemand.setAuditTime(DateUtils.getNowDate());
+        return pmDemandMapper.updatePmDemand(pmDemand);
+    }
+
+    /**
+     * 审核采购需求退回
+     *
+     * @param pmReqVo
+     * @return 结果
+     */
+    @Override
+    public int reviewReturn(PmReqVo pmReqVo) {
+        PmDemand pmDemand = new PmDemand();
+        pmDemand.setDemandId(pmReqVo.getDemandId());
+        pmDemand.setProjectStatus(Long.parseLong(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode()));
+        pmDemand.setAdjustReason(pmReqVo.getRefuseReason());
+        pmDemand.setUpdateTime(DateUtils.getNowDate());
+        pmDemand.setAuditTime(DateUtils.getNowDate());
+        return pmDemandMapper.updatePmDemand(pmDemand);
+    }
 }