Browse Source

项目管理

suntianwu 2 years ago
parent
commit
702d6c5c23

+ 19 - 17
purchase-admin/src/main/java/com/ozs/web/controller/pm/PmDemandController.java

@@ -6,7 +6,7 @@ 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.requestVo.PmDemandReqVo;
 import com.ozs.pm.doman.vo.responseVo.PmDemandResVo;
 import com.ozs.pm.service.IPmDemandService;
 import io.swagger.annotations.ApiOperation;
@@ -39,8 +39,8 @@ public class PmDemandController extends BaseController {
      */
     @ApiOperation(value = "查询采购需求列表", notes = "参数非必传")
     @PostMapping("/list")
-    public AjaxResult list(@RequestBody PmReqVo pmReqVo) {
-        List<PmDemandResVo> list = pmDemandService.selectPmDemandList(pmReqVo);
+    public AjaxResult list(@RequestBody PmDemandReqVo pmDemandReqVo) {
+        List<PmDemandResVo> list = pmDemandService.selectPmDemandList(pmDemandReqVo);
         PageInfo<PmDemandResVo> page = new PageInfo<>(list);
         return success(page);
     }
@@ -50,16 +50,18 @@ public class PmDemandController extends BaseController {
      */
     @ApiOperation(value = "获取采购需求详细信息", notes = "必传demandId,其他字段不传")
     @PostMapping("/view")
-    public AjaxResult view(@RequestBody PmReqVo pmReqVo) {
-        return success(pmDemandService.selectPmDemandByDemandId(pmReqVo.getDemandId()));
+    public AjaxResult view(@RequestBody PmDemandReqVo pmDemandReqVo) {
+        return success(pmDemandService.selectPmDemandByDemandId(pmDemandReqVo.getDemandId()));
     }
 
     /**
      * 需求建档
      */
-    @ApiOperation(value = "需求建档", notes = "必传demandId,根据类型必传pmDemandEngineeringResponseVo、pmDemandEquipResponseVo、pmDemandMaterialsResponseVo、pmDemandServeResponseVo")
+    @ApiOperation(value = "需求建档", notes = "必传demandId,根据项目类型必传pmDemandEngineeringResponseVo、pmDemandEquipResponseVo、pmDemandMaterialsResponseVo、pmDemandServeResponseVo")
     @PostMapping("/bookBuilding")
-    public AjaxResult bookBuilding(@RequestBody PmBookBuildingReqVo pmBookBuildingReqVo) {
+    public AjaxResult bookBuilding(@RequestBody PmBookBuildingReqVo pmBookBuildingReqVo, HttpServletRequest request) {
+        LoginUser loginUser = tokenService.getLoginUser(request);
+        pmBookBuildingReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
         return toAjax(pmDemandService.bookBuilding(pmBookBuildingReqVo));
     }
 
@@ -68,33 +70,33 @@ public class PmDemandController extends BaseController {
      */
     @ApiOperation(value = "查看流程图", notes = "必传demandId,其他字段不传")
     @PostMapping("/viewFlowChart")
-    public AjaxResult viewFlowChart(@RequestBody PmReqVo pmRequestVo) {
+    public AjaxResult viewFlowChart(@RequestBody PmDemandReqVo pmRequestVo) {
         return success(pmDemandService.viewFlowChart(pmRequestVo.getDemandId()));
     }
 
 
     @ApiOperation(value = "提交采购需求", notes = "必传demandId,其他字段不传")
     @PostMapping("/commit")
-    public AjaxResult commit(@RequestBody PmReqVo pmReqVo, HttpServletRequest request) {
+    public AjaxResult commit(@RequestBody PmDemandReqVo pmDemandReqVo, HttpServletRequest request) {
         LoginUser loginUser = tokenService.getLoginUser(request);
-        pmReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
-        return toAjax(pmDemandService.commit(pmReqVo));
+        pmDemandReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
+        return toAjax(pmDemandService.commit(pmDemandReqVo));
     }
 
     @ApiOperation(value = "审核采购需求通过", notes = "必传demandId和上传附件,其他字段不传")
     @PostMapping("/reviewTo")
-    public AjaxResult reviewTo(@RequestBody PmReqVo pmReqVo, HttpServletRequest request) {
+    public AjaxResult reviewTo(@RequestBody PmDemandReqVo pmDemandReqVo, HttpServletRequest request) {
         LoginUser loginUser = tokenService.getLoginUser(request);
-        pmReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
-        return toAjax(pmDemandService.reviewTo(pmReqVo));
+        pmDemandReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
+        return toAjax(pmDemandService.reviewTo(pmDemandReqVo));
     }
 
     @ApiOperation(value = "审核采购需求退回", notes = "必传demandId和退回原因,其他字段不传")
     @PostMapping("/reviewReturn")
-    public AjaxResult reviewReturn(@RequestBody PmReqVo pmReqVo, HttpServletRequest request) {
+    public AjaxResult reviewReturn(@RequestBody PmDemandReqVo pmDemandReqVo, HttpServletRequest request) {
         LoginUser loginUser = tokenService.getLoginUser(request);
-        pmReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
-        return toAjax(pmDemandService.reviewReturn(pmReqVo));
+        pmDemandReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
+        return toAjax(pmDemandService.reviewReturn(pmDemandReqVo));
     }
 
 }

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

@@ -1,10 +1,7 @@
 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;
@@ -30,19 +27,25 @@ public class PmBookBuildingReqVo
     @ApiModelProperty("主键")
     private Long demandId;
 
-    /** 采购需求工程类对象 */
-    @ApiModelProperty("采购需求工程类对象")
-    private PmDemandEngineeringResVo pmDemandEngineeringResponseVo;
-
     /** 采购需求装备类对象 */
     @ApiModelProperty("采购需求装备类对象")
-    private PmDemandEquipResVo pmDemandEquipResponseVo;
+    private PmDemandEquipReqVo pmDemandEquipReqVo;
 
     /** 采购需求物资类对象 */
     @ApiModelProperty("采购需求物资类对象")
-    private PmDemandMaterialsResVo pmDemandMaterialsResponseVo;
+    private PmDemandMaterialsReqVo pmDemandMaterialsReqVo;
 
     /** 采购需求服务类对象 */
     @ApiModelProperty("采购需求服务类对象")
-    private PmDemandServeResVo pmDemandServeResponseVo;
+    private PmDemandServeReqVo pmDemandServeReqVo;
+
+    /** 采购需求工程类对象 */
+    @ApiModelProperty("采购需求工程类对象")
+    private PmDemandEngineeringReqVo pmDemandEngineeringReqVo;
+
+    /**
+     * 更改者
+     */
+    @ApiModelProperty("更改者")
+    private String updateBy;
 }

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

@@ -0,0 +1,171 @@
+package com.ozs.pm.doman.vo.requestVo;
+
+import com.ozs.common.annotation.Excel;
+import com.ozs.common.core.domain.BaseEntity;
+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.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 采购需求工程类对象 pm_demand_engineering
+ *
+ * @author ruoyi
+ * @date 2023-01-16
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("采购需求工程类对象")
+public class PmDemandEngineeringReqVo extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long demandEngineeringId;
+
+    /** 需求ID */
+    @Excel(name = "需求ID")
+    @ApiModelProperty("需求ID")
+    private Long demandId;
+
+    /** 工程项目名称 */
+    @Excel(name = "工程项目名称")
+    @ApiModelProperty("工程项目名称")
+    private String engineeringName;
+
+    /** 建设地点 */
+    @Excel(name = "建设地点")
+    @ApiModelProperty("建设地点")
+    private String constructionLocation;
+
+    /** 设计任务书批复文号 */
+    @Excel(name = "设计任务书批复文号")
+    @ApiModelProperty("设计任务书批复文号")
+    private String designAssignmenApprovalNumber;
+
+    /** 工程建设计划文号 */
+    @Excel(name = "工程建设计划文号")
+    @ApiModelProperty("工程建设计划文号")
+    private BigDecimal projectConstructionPlanNumber;
+
+    /** 任务书批复规模(㎡)*/
+    @Excel(name = "任务书批复规模(㎡)")
+    @ApiModelProperty("任务书批复规模(㎡)")
+    private BigDecimal tassignmentApprovalScale;
+
+    /** 任务书批复投资 */
+    @Excel(name = "任务书批复投资")
+    @ApiModelProperty("任务书批复投资")
+    private String tassignmentApprovalInvestmen;
+
+    /** 规划许可文号 */
+    @Excel(name = "规划许可文号")
+    @ApiModelProperty("规划许可文号")
+    private String planningLicenseNumber;
+
+    /** 密级处理 */
+    @Excel(name = "密级处理")
+    @ApiModelProperty("密级处理")
+    private String classifiedTreatment;
+
+    /** 采购项目规模(㎡) */
+    @Excel(name = "采购项目规模(㎡)")
+    @ApiModelProperty("采购项目规模(㎡)")
+    private BigDecimal procurementProjectScale;
+
+    /** 采购项目投资(万元) */
+    @Excel(name = "采购项目投资(万元)")
+    @ApiModelProperty("采购项目投资(万元)")
+    private BigDecimal procurementProjectInvestment;
+
+    /** 联系人 */
+    @Excel(name = "联系人")
+    @ApiModelProperty("联系人")
+    private String linkman;
+
+    /** 电话 */
+    @Excel(name = "电话")
+    @ApiModelProperty("电话")
+    private String phone;
+
+    /** 项目类别(1勘察,2设计, 3施工,4监理,5咨询,6设备材料) */
+    @Excel(name = "项目类别(1勘察,2设计, 3施工,4监理,5咨询,6设备材料)")
+    @ApiModelProperty("项目类别(1勘察,2设计, 3施工,4监理,5咨询,6设备材料)")
+    private String projectCategory;
+
+    /** 项目类别名(1勘察,2设计, 3施工,4监理,5咨询,6设备材料) */
+    @Excel(name = "项目类别名(1勘察,2设计, 3施工,4监理,5咨询,6设备材料)")
+    @ApiModelProperty("项目类别名(1勘察,2设计, 3施工,4监理,5咨询,6设备材料)")
+    private String projectCategoryName;
+
+    /** 承包方式(1工程总承包,2施工总承包,3专业承包) */
+    @Excel(name = "承包方式(1工程总承包,2施工总承包,3专业承包)")
+    @ApiModelProperty("承包方式(1工程总承包,2施工总承包,3专业承包)")
+    private String contractingMode;
+
+
+    /** 承包方式名(1工程总承包,2施工总承包,3专业承包) */
+    @Excel(name = "承包方式名(1工程总承包,2施工总承包,3专业承包)")
+    @ApiModelProperty("承包方式名(1工程总承包,2施工总承包,3专业承包)")
+    private String contractingModeName;
+
+    /** 施工图是否完成(0未完成,1完成) */
+    @Excel(name = "施工图是否完成(0未完成,1完成)")
+    @ApiModelProperty("施工图是否完成(0未完成,1完成)")
+    private String constructionDrawing;
+
+    /** 施工图是否完成名(0未完成,1完成) */
+    @Excel(name = "施工图是否完成名(0未完成,1完成)")
+    @ApiModelProperty("施工图是否完成名(0未完成,1完成)")
+    private String constructionDrawingName;
+
+    /** 设计单位 */
+    @Excel(name = "设计单位")
+    @ApiModelProperty("设计单位")
+    private String designUnit;
+
+    /** 最高限价 */
+    @Excel(name = "最高限价")
+    @ApiModelProperty("最高限价")
+    private BigDecimal ceilingPrice;
+
+    /** 采购方式建议(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源) */
+    @Excel(name = "采购方式建议(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源)")
+    @ApiModelProperty("采购方式建议(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源)")
+    private String procurementMethodSuggest;
+
+    /** 采购方式建议名 */
+    @Excel(name = "采购方式建议名(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源)")
+    @ApiModelProperty("采购方式建议名(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源)")
+    private String procurementMethodSuggestName;
+
+    /** 投标(报价)人资质等级要求 */
+    @Excel(name = "投标(报价)人资质等级要求")
+    @ApiModelProperty("投标(报价)人资质等级要求")
+    private String qualificationLevelRequirement;
+
+    /** 供应商 */
+    @Excel(name = "供应商")
+    @ApiModelProperty("供应商")
+    private Long supplierId;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    @ApiModelProperty("备注")
+    private String remarks;
+
+    /**
+     * 上传附件
+     */
+    @ApiModelProperty("上传附件")
+    private List<SysFileRef> sysFileRefs;
+
+}

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

@@ -0,0 +1,102 @@
+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 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.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 采购需求装备类对象 pm_demand_equip
+ *
+ * @author ruoyi
+ * @date 2023-01-16
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("采购需求装备类对象")
+public class PmDemandEquipReqVo extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long demandEquipId;
+
+    /** 需求ID */
+    @Excel(name = "需求ID")
+    @ApiModelProperty("需求ID")
+    private Long demandId;
+
+    /** 物资类别及品种名称 */
+    @Excel(name = "物资类别及品种名称")
+    @ApiModelProperty("物资类别及品种名称")
+    private String typeAndName;
+
+    /** 规格型号长*宽*高 */
+    @Excel(name = "规格型号长*宽*高")
+    @ApiModelProperty("规格型号长*宽*高")
+    private String specification;
+
+    /** 质量技术标准(技术参数)*/
+    @Excel(name = "质量技术标准(技术参数)")
+    @ApiModelProperty("质量技术标准(技术参数)\"")
+    private String qualityTechnicalStandard;
+
+    /** 计量单位 */
+    @Excel(name = "计量单位")
+    @ApiModelProperty("计量单位")
+    private String measurementUnit;
+
+    /** 采购数量 */
+    @Excel(name = "采购数量")
+    @ApiModelProperty("采购数量")
+    private BigDecimal procurementQuantity;
+
+    /** 单价(元) */
+    @Excel(name = "单价(元)")
+    @ApiModelProperty("单价(元)")
+    private BigDecimal price;
+
+    /** 预算金额(万元) */
+    @Excel(name = "预算金额(万元)")
+    @ApiModelProperty("预算金额(万元)")
+    private BigDecimal budgetAmount;
+
+    /** 需求提报时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "需求提报时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty("需求提报时间 yyyy-MM-dd")
+    private Date demandCommitTime;
+
+    /** 采购方式建议 */
+    @Excel(name = "采购方式建议(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源)")
+    @ApiModelProperty("采购方式建议(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源)")
+    private String procurementMethodSuggest;
+
+    /** 采购方式建议名 */
+    @Excel(name = "采购方式建议名(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源)")
+    @ApiModelProperty("采购方式建议名(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源)")
+    private String procurementMethodSuggestName;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    @ApiModelProperty("备注")
+    private String remarks;
+
+    /**
+     * 上传附件
+     */
+    @ApiModelProperty("上传附件")
+    private List<SysFileRef> sysFileRefs;
+}

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

@@ -0,0 +1,125 @@
+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 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.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 采购需求物资类对象 pm_demand_materials
+ *
+ * @author ruoyi
+ * @date 2023-01-16
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("采购需求物资类对象")
+public class PmDemandMaterialsReqVo extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Long demandMaterialsId;
+
+    /**
+     * 需求ID
+     */
+    @Excel(name = "需求ID")
+    @ApiModelProperty("需求ID")
+    private Long demandId;
+
+    /**
+     * 物资类别及品种名称
+     */
+    @Excel(name = "物资类别及品种名称")
+    @ApiModelProperty("物资类别及品种名称")
+    private String typeAndName;
+
+    /**
+     * 规格型号长*宽*高
+     */
+    @Excel(name = "规格型号长*宽*高")
+    @ApiModelProperty("规格型号长*宽*高")
+    private String specification;
+
+    /**
+     * 质量技术标准(技术参数)
+     */
+    @Excel(name = "质量技术标准(技术参数)")
+    @ApiModelProperty("质量技术标准(技术参数)")
+    private String qualityTechnicalStandard;
+
+    /**
+     * 计量单位
+     */
+    @Excel(name = "计量单位")
+    @ApiModelProperty("计量单位")
+    private String measurementUnit;
+
+    /**
+     * 采购数量
+     */
+    @Excel(name = "采购数量")
+    @ApiModelProperty("采购数量")
+    private BigDecimal procurementQuantity;
+
+    /**
+     * 单价(元)
+     */
+    @Excel(name = "单价(元)")
+    @ApiModelProperty("单价(元)")
+    private BigDecimal price;
+
+    /**
+     * 预算金额(万元)
+     */
+    @Excel(name = "预算金额(万元)")
+    @ApiModelProperty("预算金额(万元)")
+    private BigDecimal budgetAmount;
+
+    /**
+     * 需求提报时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "需求提报时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty("需求提报时间")
+    private Date demandCommitTime;
+
+    /**
+     * 采购方式建议
+     */
+    @Excel(name = "采购方式建议(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源)")
+    @ApiModelProperty("采购方式建议(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源)")
+    private String procurementMethodSuggest;
+
+    /** 采购方式建议名 */
+    @Excel(name = "采购方式建议名(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源)")
+    @ApiModelProperty("采购方式建议名(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源)")
+    private String procurementMethodSuggestName;
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty("备注")
+    private String remarks;
+
+    /**
+     * 上传附件
+     */
+    @ApiModelProperty("上传附件")
+    private List<SysFileRef> sysFileRefs;
+}

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

@@ -23,7 +23,7 @@ import java.util.List;
 @NoArgsConstructor
 @Builder
 @ApiModel("采购需求对象")
-public class PmReqVo extends PageVo
+public class PmDemandReqVo extends PageVo
 {
     /** 主键 */
     @ApiModelProperty("主键")

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

@@ -0,0 +1,105 @@
+package com.ozs.pm.doman.vo.requestVo;
+
+import com.ozs.common.annotation.Excel;
+import com.ozs.common.core.domain.BaseEntity;
+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.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 采购需求服务类对象 pm_demand_serve
+ *
+ * @author ruoyi
+ * @date 2023-01-16
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("采购需求服务类对象")
+public class PmDemandServeReqVo extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long demandServeId;
+
+    /** 需求ID */
+    @Excel(name = "需求ID")
+    @ApiModelProperty("需求ID")
+    private Long demandId;
+
+    /** 服务项目名称 */
+    @Excel(name = "服务项目名称")
+    @ApiModelProperty("服务项目名称")
+    private String serviceName;
+
+    /** 技术服务要求 */
+    @Excel(name = "技术服务要求")
+    @ApiModelProperty("技术服务要求")
+    private String technicalServiceRequirement;
+
+    /** 计量单位 */
+    @Excel(name = "计量单位")
+    @ApiModelProperty("计量单位")
+    private String measurementUnit;
+
+    /** 采购数量 */
+    @Excel(name = "采购数量")
+    @ApiModelProperty("采购数量")
+    private BigDecimal procurementQuantity;
+
+    /** 单价(元) */
+    @Excel(name = "单价(元)")
+    @ApiModelProperty("单价(元)")
+    private BigDecimal price;
+
+    /** 预算金额(万元) */
+    @Excel(name = "预算金额(万元)")
+    @ApiModelProperty("预算金额(万元)")
+    private BigDecimal budgetAmount;
+
+    /** 交货期限 */
+    @Excel(name = "交货期限")
+    @ApiModelProperty("交货期限")
+    private String deliveryTimeLimit;
+
+    /** 采购方式建议(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源) */
+    @Excel(name = "采购方式建议(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源)")
+    @ApiModelProperty("采购方式建议(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源)")
+    private String procurementMethodSuggest;
+
+    /** 采购方式建议名 */
+    @Excel(name = "采购方式建议名(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源)")
+    @ApiModelProperty("采购方式建议名(1公开招标,2邀请招标,3竞争性谈判,4询价,5单一来源)")
+    private String procurementMethodSuggestName;
+
+    /** 供应商 */
+    @Excel(name = "供应商")
+    @ApiModelProperty("供应商")
+    private Long supplierId;
+
+    /** 供应商名 */
+    @Excel(name = "供应商名")
+    @ApiModelProperty("供应商名")
+    private String supplierName;
+
+
+    /** 备注 */
+    @Excel(name = "备注")
+    @ApiModelProperty("备注")
+    private String remarks;
+
+    /**
+     * 上传附件
+     */
+    @ApiModelProperty("上传附件")
+    private List<SysFileRef> sysFileRefs;
+}

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

@@ -199,21 +199,22 @@ public class PmDemandResVo extends BaseEntity
     @ApiModelProperty("调整建议")
     private String adjustAdvice;
 
-    /** 采购需求工程类对象 */
-    @ApiModelProperty("采购需求工程类对象")
-    private PmDemandEngineeringResVo pmDemandEngineeringResponseVo;
-
     /** 采购需求装备类对象 */
     @ApiModelProperty("采购需求装备类对象")
-    private PmDemandEquipResVo pmDemandEquipResponseVo;
+    private PmDemandEquipResVo pmDemandEquipResVo;
 
     /** 采购需求物资类对象 */
     @ApiModelProperty("采购需求物资类对象")
-    private PmDemandMaterialsResVo pmDemandMaterialsResponseVo;
+    private PmDemandMaterialsResVo pmDemandMaterialsResVo;
 
     /** 采购需求服务类对象 */
     @ApiModelProperty("采购需求服务类对象")
-    private PmDemandServeResVo pmDemandServeResponseVo;
+    private PmDemandServeResVo pmDemandServeResVo;
+
+    /** 采购需求工程类对象 */
+    @ApiModelProperty("采购需求工程类对象")
+    private PmDemandEngineeringResVo pmDemandEngineeringResVo;
+
 
     /**
      * 采购需求附件

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

@@ -3,7 +3,7 @@ package com.ozs.pm.service;
 
 import com.ozs.pm.doman.PmDemand;
 import com.ozs.pm.doman.vo.requestVo.PmBookBuildingReqVo;
-import com.ozs.pm.doman.vo.requestVo.PmReqVo;
+import com.ozs.pm.doman.vo.requestVo.PmDemandReqVo;
 import com.ozs.pm.doman.vo.responseVo.PmDemandResVo;
 
 import java.util.List;
@@ -28,10 +28,10 @@ public interface IPmDemandService
     /**
      * 查询采购需求列表
      * 
-     * @param pmReqVo 采购需求
+     * @param pmDemandReqVo 采购需求
      * @return 采购需求集合
      */
-    public List<PmDemandResVo> selectPmDemandList(PmReqVo pmReqVo);
+    public List<PmDemandResVo> selectPmDemandList(PmDemandReqVo pmDemandReqVo);
 
     /**
      * 新增采购需求
@@ -67,24 +67,24 @@ public interface IPmDemandService
     /**
      * 提交采购需求
      *
-     * @param pmReqVo
+     * @param pmDemandReqVo
      * @return 结果
      */
-    public int commit(PmReqVo pmReqVo);
+    public int commit(PmDemandReqVo pmDemandReqVo);
 
     /**
      * 审核采购需求通过
      *
-     * @param pmReqVo
+     * @param pmDemandReqVo
      * @return 结果
      */
-    public int reviewTo(PmReqVo pmReqVo);
+    public int reviewTo(PmDemandReqVo pmDemandReqVo);
 
     /**
      * 审核采购需求退回
      *
-     * @param pmReqVo
+     * @param pmDemandReqVo
      * @return 结果
      */
-    public int reviewReturn(PmReqVo pmReqVo);
+    public int reviewReturn(PmDemandReqVo pmDemandReqVo);
 }

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

@@ -7,8 +7,7 @@ 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.PmBookBuildingReqVo;
-import com.ozs.pm.doman.vo.requestVo.PmReqVo;
+import com.ozs.pm.doman.vo.requestVo.*;
 import com.ozs.pm.doman.vo.responseVo.*;
 import com.ozs.pm.mapper.PmDemandMapper;
 import com.ozs.pm.service.*;
@@ -35,12 +34,14 @@ public class PmDemandServiceImpl implements IPmDemandService
 {
     @Autowired
     private PmDemandMapper pmDemandMapper;
+
     @Autowired
-    private IPmDemandServeService iPmDemandServeService;
+    private IPmDemandEquipService iPmDemandEquipService;
     @Autowired
     private IPmDemandMaterialsService iPmDemandMaterialsService;
+
     @Autowired
-    private IPmDemandEquipService iPmDemandEquipService;
+    private IPmDemandServeService iPmDemandServeService;
     @Autowired
     private IPmDemandEngineeringService iPmDemandEngineeringService;
     @Autowired
@@ -151,7 +152,7 @@ public class PmDemandServiceImpl implements IPmDemandService
                         responseVo.setFileMap(fileMap1);
                     }
 
-                    vo.setPmDemandEquipResponseVo(responseVo);
+                    vo.setPmDemandEquipResVo(responseVo);
                 }
             } else if(ProjectTypes.MATERIALTYPE.getCode().equals(vo.getProjectType())){ //物资类
                 PmDemandMaterials obj = new PmDemandMaterials();
@@ -171,7 +172,7 @@ public class PmDemandServiceImpl implements IPmDemandService
                     if(fileMap2 != null){
                         responseVo.setFileMap(fileMap2);
                     }
-                    vo.setPmDemandMaterialsResponseVo(responseVo);
+                    vo.setPmDemandMaterialsResVo(responseVo);
                 }
             } else if(ProjectTypes.SERVICESTYPE.getCode().equals(vo.getProjectType())){//服务类
                 PmDemandServe obj = new PmDemandServe();
@@ -191,7 +192,7 @@ public class PmDemandServiceImpl implements IPmDemandService
                     if(fileMap3 != null){
                         responseVo.setFileMap(fileMap3);
                     }
-                    vo.setPmDemandServeResponseVo(responseVo);
+                    vo.setPmDemandServeResVo(responseVo);
                 }
             } else if(ProjectTypes.PLANTOEXAMINETYPE.getCode().equals(vo.getProjectType())){//工程类
                 PmDemandEngineering obj = new PmDemandEngineering();
@@ -232,7 +233,7 @@ public class PmDemandServiceImpl implements IPmDemandService
                     if(fileMap4 != null){
                         responseVo.setFileMap(fileMap4);
                     }
-                    vo.setPmDemandEngineeringResponseVo(responseVo);
+                    vo.setPmDemandEngineeringResVo(responseVo);
                 }
             }
 
@@ -245,19 +246,19 @@ public class PmDemandServiceImpl implements IPmDemandService
     /**
      * 查询采购需求列表
      *
-     * @param pmReqVo
+     * @param pmDemandReqVo
      * @return 采购需求
      */
     @Override
-    public List<PmDemandResVo> selectPmDemandList(PmReqVo pmReqVo) {
+    public List<PmDemandResVo> selectPmDemandList(PmDemandReqVo pmDemandReqVo) {
         PmDemand pmDemand = new PmDemand();
-        pmDemand.setProjectName(pmReqVo.getProjectName());
-        pmDemand.setPurchaseServices(pmReqVo.getPurchaseServiceStation());
-        pmDemand.setProjectStatus(pmReqVo.getProjectStatus());
-        pmDemand.setIsExcess(pmReqVo.getIsExcess());
+        pmDemand.setProjectName(pmDemandReqVo.getProjectName());
+        pmDemand.setPurchaseServices(pmDemandReqVo.getPurchaseServiceStation());
+        pmDemand.setProjectStatus(pmDemandReqVo.getProjectStatus());
+        pmDemand.setIsExcess(pmDemandReqVo.getIsExcess());
         Map<String,Object> params = new HashMap<>();
-        params.put("beginDate",pmReqVo.getBeginDate());
-        params.put("endDate",pmReqVo.getEndDate());
+        params.put("beginDate", pmDemandReqVo.getBeginDate());
+        params.put("endDate", pmDemandReqVo.getEndDate());
         pmDemand.setParams(params);
         List<PmDemand> pmDemandList = pmDemandMapper.selectPmDemandList(pmDemand);
         List<PmDemandResVo> pmDemandResponseVoList = new ArrayList<>();
@@ -352,13 +353,126 @@ public class PmDemandServiceImpl implements IPmDemandService
     /**
      * 需求建档
      *
-     * @param pmBookBuildingReqVo 采购需求
+     * @param vo 采购需求
      * @return 结果
      */
     @Override
-    public int bookBuilding(PmBookBuildingReqVo pmBookBuildingReqVo) {
-        PmDemand pmDemand = new PmDemand();
-        pmDemand.setDemandId(pmBookBuildingReqVo.getDemandId());
+    public int bookBuilding(PmBookBuildingReqVo vo) {
+        PmDemand pmDemand = pmDemandMapper.selectPmDemandByDemandId(vo.getDemandId());
+        String projectType = pmDemand.getProjectType();
+        if(ProjectTypes.EQUIPMENTTYPE.getCode().equals(projectType)){ //装备类
+            PmDemandEquipReqVo pmDemandEquipReqVo =  vo.getPmDemandEquipReqVo();
+            PmDemandEquip pmDemandEquipReq = new PmDemandEquip();
+            pmDemandEquipReq.setDemandId(vo.getDemandId());
+            PmDemandEquip pmDemandEquip = null;
+            List<PmDemandEquip> pmDemandEquipList = iPmDemandEquipService.selectPmDemandEquipList(pmDemandEquipReq);
+            if(pmDemandEquipList != null && pmDemandEquipList.size() > 0){
+                pmDemandEquip = pmDemandEquipList.get(0);
+                BeanUtils.copyProperties(pmDemandEquipReqVo,pmDemandEquip);
+                iPmDemandEquipService.updatePmDemandEquip(pmDemandEquip);
+            } else {
+                pmDemandEquip = new PmDemandEquip();
+                BeanUtils.copyProperties(pmDemandEquipReqVo,pmDemandEquip);
+                iPmDemandEquipService.insertPmDemandEquip(pmDemandEquip);
+            }
+
+            List<SysFileRef> sysFileRefs = pmDemandEquipReqVo.getSysFileRefs();
+            if (!ObjectUtils.isEmpty(sysFileRefs)) {
+                for (SysFileRef ref : sysFileRefs) {
+                    ref.setRedId(pmDemandEquip.getDemandEquipId());
+                    ref.setType(SysFileRefEnum.PM_DEMAND_EQUIP.getType());
+                    ref.setCreated(vo.getUpdateBy());
+                    ref.setCreateTime(new Date());
+                    ref.setUpdated(vo.getUpdateBy());
+                    ref.setUpdateTime(new Date());
+                    sysFileRefService.save(ref);
+                }
+            }
+        } else if(ProjectTypes.MATERIALTYPE.getCode().equals(projectType)) { //物资类
+            PmDemandMaterialsReqVo pmDemandMaterialsReqVo =  vo.getPmDemandMaterialsReqVo();
+            PmDemandMaterials pmDemandMaterialsReq = new PmDemandMaterials();
+            pmDemandMaterialsReq.setDemandId(vo.getDemandId());
+            PmDemandMaterials pmDemandMaterials = null;
+            List<PmDemandMaterials> pmDemandMaterialsList = iPmDemandMaterialsService.selectPmDemandMaterialsList(pmDemandMaterialsReq);
+            if(pmDemandMaterialsList != null && pmDemandMaterialsList.size() > 0){
+                pmDemandMaterials = pmDemandMaterialsList.get(0);
+                BeanUtils.copyProperties(pmDemandMaterialsReqVo,pmDemandMaterials);
+                iPmDemandMaterialsService.updatePmDemandMaterials(pmDemandMaterials);
+            } else {
+                pmDemandMaterials = new PmDemandMaterials();
+                BeanUtils.copyProperties(pmDemandMaterialsReqVo,pmDemandMaterials);
+                iPmDemandMaterialsService.insertPmDemandMaterials(pmDemandMaterials);
+            }
+
+            List<SysFileRef> sysFileRefs = pmDemandMaterialsReqVo.getSysFileRefs();
+            if (!ObjectUtils.isEmpty(sysFileRefs)) {
+                for (SysFileRef ref : sysFileRefs) {
+                    ref.setRedId(pmDemandMaterials.getDemandMaterialsId());
+                    ref.setType(SysFileRefEnum.PM_DEMAND_MATERIALS.getType());
+                    ref.setCreated(vo.getUpdateBy());
+                    ref.setCreateTime(new Date());
+                    ref.setUpdated(vo.getUpdateBy());
+                    ref.setUpdateTime(new Date());
+                    sysFileRefService.save(ref);
+                }
+            }
+        } else if(ProjectTypes.SERVICESTYPE.getCode().equals(projectType)) { //服务类
+            PmDemandServeReqVo pmDemandServeReqVo =  vo.getPmDemandServeReqVo();
+            PmDemandServe pmDemandServeReq = new PmDemandServe();
+            pmDemandServeReq.setDemandId(vo.getDemandId());
+            PmDemandServe pmDemandServe = null;
+            List<PmDemandServe> pmDemandServeList = iPmDemandServeService.selectPmDemandServeList(pmDemandServeReq);
+            if(pmDemandServeList != null && pmDemandServeList.size() > 0){
+                pmDemandServe = pmDemandServeList.get(0);
+                BeanUtils.copyProperties(pmDemandServeReqVo,pmDemandServe);
+                iPmDemandServeService.updatePmDemandServe(pmDemandServe);
+            } else {
+                pmDemandServe = new PmDemandServe();
+                BeanUtils.copyProperties(pmDemandServeReqVo,pmDemandServe);
+                iPmDemandServeService.insertPmDemandServe(pmDemandServe);
+            }
+            List<SysFileRef> sysFileRefs = pmDemandServeReqVo.getSysFileRefs();
+            if (!ObjectUtils.isEmpty(sysFileRefs)) {
+                for (SysFileRef ref : sysFileRefs) {
+                    ref.setRedId(pmDemandServe.getDemandServeId());
+                    ref.setType(SysFileRefEnum.PM_DEMAND_SERVE.getType());
+                    ref.setCreated(vo.getUpdateBy());
+                    ref.setCreateTime(new Date());
+                    ref.setUpdated(vo.getUpdateBy());
+                    ref.setUpdateTime(new Date());
+                    sysFileRefService.save(ref);
+                }
+            }
+        } else if(ProjectTypes.PLANTOEXAMINETYPE.getCode().equals(projectType)) { //工程类
+            PmDemandEngineeringReqVo pmDemandEngineeringReqVo =  vo.getPmDemandEngineeringReqVo();
+            PmDemandEngineering pmDemandEngineeringReq = new PmDemandEngineering();
+            pmDemandEngineeringReq.setDemandId(vo.getDemandId());
+            PmDemandEngineering pmDemandEngineering = null;
+            List<PmDemandEngineering> pmDemandEngineeringList = iPmDemandEngineeringService.selectPmDemandEngineeringList(pmDemandEngineeringReq);
+            if(pmDemandEngineeringList != null && pmDemandEngineeringList.size() > 0){
+                pmDemandEngineering = pmDemandEngineeringList.get(0);
+                BeanUtils.copyProperties(pmDemandEngineeringReqVo,pmDemandEngineering);
+                iPmDemandEngineeringService.updatePmDemandEngineering(pmDemandEngineering);
+            } else {
+                pmDemandEngineering = new PmDemandEngineering();
+                BeanUtils.copyProperties(pmDemandEngineeringReqVo,pmDemandEngineering);
+                iPmDemandEngineeringService.insertPmDemandEngineering(pmDemandEngineering);
+            }
+            List<SysFileRef> sysFileRefs = pmDemandEngineeringReqVo.getSysFileRefs();
+            if (!ObjectUtils.isEmpty(sysFileRefs)) {
+                for (SysFileRef ref : sysFileRefs) {
+                    ref.setRedId(pmDemandEngineering.getDemandEngineeringId());
+                    ref.setType(SysFileRefEnum.PM_DEMAND_ENGINEERING.getType());
+                    ref.setCreated(vo.getUpdateBy());
+                    ref.setCreateTime(new Date());
+                    ref.setUpdated(vo.getUpdateBy());
+                    ref.setUpdateTime(new Date());
+                    sysFileRefService.save(ref);
+                }
+            }
+        }
+
+        pmDemand.setUpdateBy(vo.getUpdateBy());
         pmDemand.setUpdateTime(DateUtils.getNowDate());
         return pmDemandMapper.updatePmDemand(pmDemand);
     }
@@ -397,14 +511,15 @@ public class PmDemandServiceImpl implements IPmDemandService
     /**
      * 提交采购需求
      *
-     * @param pmReqVo
+     * @param pmDemandReqVo
      * @return 结果
      */
     @Override
-    public int commit(PmReqVo pmReqVo) {
+    public int commit(PmDemandReqVo pmDemandReqVo) {
         PmDemand pmDemand = new PmDemand();
-        pmDemand.setDemandId(pmReqVo.getDemandId());
+        pmDemand.setDemandId(pmDemandReqVo.getDemandId());
         pmDemand.setProjectStatus(Long.parseLong(PmProjectStatus.DEMAND_WAIT_AUDIT.getCode()));
+        pmDemand.setUpdateBy(pmDemandReqVo.getUpdateBy());
         pmDemand.setUpdateTime(DateUtils.getNowDate());
         return pmDemandMapper.updatePmDemand(pmDemand);
     }
@@ -412,26 +527,27 @@ public class PmDemandServiceImpl implements IPmDemandService
     /**
      * 审核采购需求通过
      *
-     * @param pmReqVo
+     * @param pmDemandReqVo
      * @return 结果
      */
     @Override
-    public int reviewTo(PmReqVo pmReqVo) {
+    public int reviewTo(PmDemandReqVo pmDemandReqVo) {
         PmDemand pmDemand = new PmDemand();
-        pmDemand.setDemandId(pmReqVo.getDemandId());
+        pmDemand.setDemandId(pmDemandReqVo.getDemandId());
         pmDemand.setProjectStatus(Long.parseLong(PmProjectStatus.TASK_WAIT_RELEASE.getCode()));
-        List<SysFileRef> sysFileRefs = pmReqVo.getSysFileRefs();
+        List<SysFileRef> sysFileRefs = pmDemandReqVo.getSysFileRefs();
         if (!ObjectUtils.isEmpty(sysFileRefs)) {
             for (SysFileRef ref : sysFileRefs) {
-                ref.setRedId(pmReqVo.getDemandId());
+                ref.setRedId(pmDemandReqVo.getDemandId());
                 ref.setType(SysFileRefEnum.PM_DEMAND_EXAMINE.getType());
-                ref.setCreated(pmReqVo.getUpdateBy());
+                ref.setCreated(pmDemandReqVo.getUpdateBy());
                 ref.setCreateTime(new Date());
-                ref.setUpdated(pmReqVo.getUpdateBy());
+                ref.setUpdated(pmDemandReqVo.getUpdateBy());
                 ref.setUpdateTime(new Date());
                 sysFileRefService.save(ref);
             }
         }
+        pmDemand.setUpdateBy(pmDemandReqVo.getUpdateBy());
         pmDemand.setUpdateTime(DateUtils.getNowDate());
         pmDemand.setAuditTime(DateUtils.getNowDate());
         return pmDemandMapper.updatePmDemand(pmDemand);
@@ -440,15 +556,16 @@ public class PmDemandServiceImpl implements IPmDemandService
     /**
      * 审核采购需求退回
      *
-     * @param pmReqVo
+     * @param pmDemandReqVo
      * @return 结果
      */
     @Override
-    public int reviewReturn(PmReqVo pmReqVo) {
+    public int reviewReturn(PmDemandReqVo pmDemandReqVo) {
         PmDemand pmDemand = new PmDemand();
-        pmDemand.setDemandId(pmReqVo.getDemandId());
+        pmDemand.setDemandId(pmDemandReqVo.getDemandId());
         pmDemand.setProjectStatus(Long.parseLong(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode()));
-        pmDemand.setAdjustReason(pmReqVo.getRefuseReason());
+        pmDemand.setAdjustReason(pmDemandReqVo.getRefuseReason());
+        pmDemand.setUpdateBy(pmDemandReqVo.getUpdateBy());
         pmDemand.setUpdateTime(DateUtils.getNowDate());
         pmDemand.setAuditTime(DateUtils.getNowDate());
         return pmDemandMapper.updatePmDemand(pmDemand);