Procházet zdrojové kódy

更改计划审核后同步数据的逻辑

buzhanyi před 2 roky
rodič
revize
cf666c965a

+ 1 - 1
purchase-system/src/main/java/com/ozs/plan/doman/PlanQuarter.java

@@ -37,7 +37,7 @@ public class PlanQuarter {
      * 采购单位(登录账号的单位)
      */
     @NotNull(message = "采购单位不能为空")
-    private String purchaseDeptId;
+    private Long purchaseDeptId;
 
     @Excel(name = "采购单位")
     @TableField(exist = false)

+ 1 - 1
purchase-system/src/main/java/com/ozs/plan/doman/PlanYears.java

@@ -29,7 +29,7 @@ public class PlanYears {
      * 采购单位(登录账号的单位)
      */
     @NotNull(message = "采购单位不能为空")
-    private String purchaseDeptId;
+    private Long purchaseDeptId;
 
     @Excel(name = "采购单位")
     @TableField(exist = false)

+ 5 - 0
purchase-system/src/main/java/com/ozs/plan/doman/vo/requestVo/PlanQuarterStandardVo.java

@@ -8,6 +8,7 @@ import com.ozs.system.domain.SysFileRef;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
@@ -137,6 +138,10 @@ public class PlanQuarterStandardVo extends PageVo {
      */
     @ApiModelProperty(value = "退回原因")
     private String reasonOfReturn;
+    /**
+     * 计划调整情况及理由--->如计划需要变更,在填写申请修改时需填写调整情况及理由,审核单位审核通过后显示
+     */
+    private String adjustReason;
 
     /**
      * 创建者

+ 6 - 0
purchase-system/src/main/java/com/ozs/plan/doman/vo/requestVo/PlanYearsStandardVo.java

@@ -8,6 +8,7 @@ import com.ozs.system.domain.SysFileRef;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
@@ -134,6 +135,11 @@ public class PlanYearsStandardVo extends PageVo {
     @ApiModelProperty(value = "退回原因")
     private String reasonOfReturn;
 
+    /**
+     * 计划调整情况及理由--->如计划需要变更,在填写申请修改时需填写调整情况及理由,审核单位审核通过后显示
+     */
+    private String adjustReason;
+
     /**
      * 创建者
      */

+ 2 - 1
purchase-system/src/main/java/com/ozs/plan/mapper/PlanQuarterMapper.java

@@ -4,6 +4,7 @@ package com.ozs.plan.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ozs.plan.doman.PlanQuarter;
 import com.ozs.plan.doman.PlanQuarter;
+import com.ozs.plan.doman.vo.requestVo.PlanQuarterStandardVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -84,7 +85,7 @@ public interface PlanQuarterMapper extends BaseMapper<PlanQuarter> {
 
     public Integer commit(Long planPracticalId);
 
-    public Integer review(PlanQuarter ofYears);
+    public Integer review(PlanQuarterStandardVo vo);
 
     Integer sendLetter(Long planPracticalId);
 }

+ 2 - 1
purchase-system/src/main/java/com/ozs/plan/mapper/PlanYearsMapper.java

@@ -3,6 +3,7 @@ package com.ozs.plan.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ozs.plan.doman.PlanYears;
+import com.ozs.plan.doman.vo.requestVo.PlanYearsStandardVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -83,7 +84,7 @@ public interface PlanYearsMapper extends BaseMapper<PlanYears> {
 
     public Integer commit(Long planYearId);
 
-    public Integer review(PlanYears ofYears);
+    public Integer review(PlanYearsStandardVo vo);
 
     Integer sendLetter(Long planYearId);
 }

+ 36 - 14
purchase-system/src/main/java/com/ozs/plan/service/impl/PlanQuarterServiceImpl.java

@@ -8,6 +8,8 @@ import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.core.domain.entity.SysDept;
 import com.ozs.common.core.domain.entity.SysDictData;
 import com.ozs.common.core.domain.model.LoginUser;
+import com.ozs.common.enums.DataIsDelete;
+import com.ozs.common.enums.PmProjectStatus;
 import com.ozs.common.enums.ProjectStatus;
 import com.ozs.common.enums.ProjectTypes;
 import com.ozs.common.enums.SysFileRefEnum;
@@ -22,6 +24,8 @@ import com.ozs.plan.doman.vo.responseVo.PlanQuarterResponseVo;
 import com.ozs.plan.mapper.PlanQuarterMapper;
 import com.ozs.plan.mapper.PlanYearsMapper;
 import com.ozs.plan.service.PlanQuarterService;
+import com.ozs.pm.doman.PmDemand;
+import com.ozs.pm.mapper.PmDemandMapper;
 import com.ozs.system.domain.SysFileInfo;
 import com.ozs.system.domain.SysFileRef;
 import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo;
@@ -68,6 +72,8 @@ public class PlanQuarterServiceImpl implements PlanQuarterService {
     private SysDeptMapper deptMapper;
     @Autowired
     private SysFileService fileService;
+    @Autowired
+    private PmDemandMapper pmDemandMapper;
 
     @Override
     public Page selectPlanQuarterList(PlanQuarterStandardVo vo) {
@@ -112,6 +118,7 @@ public class PlanQuarterServiceImpl implements PlanQuarterService {
                 if (!ObjectUtils.isEmpty(vo.getEndTime())) {
                     lw.le(PlanQuarter::getPlanDemandSubTime, vo.getEndTime());
                 }
+                lw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete);
                 Page<PlanQuarter> page = planQuarterMapper.selectPage(new Page<PlanQuarter>(num, size, false), lw);
                 list.addAll(page.getRecords());
                 size = page.getRecords().size();
@@ -169,6 +176,7 @@ public class PlanQuarterServiceImpl implements PlanQuarterService {
                 if (!ObjectUtils.isEmpty(vo.getEndTime())) {
                     lw.le(PlanQuarter::getPlanDemandSubTime, vo.getEndTime());
                 }
+                lw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete);
                 Page<PlanQuarter> page = planQuarterMapper.selectPage(new Page<PlanQuarter>(num, size, false), lw);
                 list.addAll(page.getRecords());
                 size = page.getRecords().size();
@@ -317,7 +325,7 @@ public class PlanQuarterServiceImpl implements PlanQuarterService {
                     //采购单位
                     SysDept info = deptMapper.checkDeptNameOnlyOne(ofYear.getPurchaseDeptName());
                     if (!ObjectUtils.isEmpty(info)) {
-                        ofYear.setPurchaseDeptId(String.valueOf(info.getDeptId()));
+                        ofYear.setPurchaseDeptId(info.getDeptId());
                     } else {
                         ++failureNum;
                         failureMsg.append("*" + failureNum + "*采购单位“" + ofYear.getPurchaseDeptName() + "”不存在");
@@ -406,8 +414,9 @@ public class PlanQuarterServiceImpl implements PlanQuarterService {
     @Override
     @Transactional
     public AjaxResult reviewTo(PlanQuarterStandardVo vo) {
+        //季度计划审核通过后同步到年度计划和项目管理
         PlanQuarter quarters = new PlanQuarter();
-        BeanUtils.copyProperties(vo, quarters);
+        PmDemand demand = new PmDemand();
         PlanQuarter byId = planQuarterMapper.getById(vo.getPlanPracticalId());
         if (ObjectUtils.isEmpty(byId.getPlanYearId())) {
             PlanYears ofYears = new PlanYears();
@@ -416,20 +425,35 @@ public class PlanQuarterServiceImpl implements PlanQuarterService {
             planYearsMapper.insertPlanYears(ofYears);
             quarters.setPlanYearId(ofYears.getPlanYearId());
         }
-        quarters.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
-        return review(vo, quarters);
+        BeanUtils.copyProperties(byId, demand);
+        demand.setPlanId(byId.getPlanPracticalId());
+        //同步到项目管理状态为需求待填制
+        demand.setProjectStatus(Long.valueOf(PmProjectStatus.DEMAND_WAIT_FILL.getCode()));
+        pmDemandMapper.insert(demand);
+        //计划附件也进行同步---查询年度计划附件后复制一份改为项目需求附件
+        LambdaQueryWrapper<SysFileRef> sysFileRefLp = new LambdaQueryWrapper<>();
+        sysFileRefLp.eq(SysFileRef::getType, SysFileRefEnum.PLAN_YEAR.getType());
+        sysFileRefLp.eq(SysFileRef::getRedId, vo.getPlanYearId());
+        List<SysFileRef> sysFileRefs = sysFileRefMapper.selectList(sysFileRefLp);
+        if (!ObjectUtils.isEmpty(sysFileRefs)) {
+            for (SysFileRef ref : sysFileRefs) {
+                ref.setRedId(demand.getDemandId());
+                ref.setType(SysFileRefEnum.PM_DEMAND.getType());
+                sysFileRefMapper.insert(ref);
+            }
+        }
+        vo.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
+        return review(vo);
     }
 
     @Override
     @Transactional
     public AjaxResult reviewReturn(PlanQuarterStandardVo vo) {
-        PlanQuarter quarters = new PlanQuarter();
-        BeanUtils.copyProperties(vo, quarters);
-        quarters.setProjectStatus(ProjectStatus.PLANTOBACK.getCode());
-        return review(vo, quarters);
+        vo.setProjectStatus(ProjectStatus.PLANTOBACK.getCode());
+        return review(vo);
     }
 
-    private AjaxResult review(PlanQuarterStandardVo vo, PlanQuarter quarters) {
+    private AjaxResult review(PlanQuarterStandardVo vo) {
         List<SysFileRef> sysFileRefs = vo.getSysFileRefs();
         if (!ObjectUtils.isEmpty(sysFileRefs)) {
             for (SysFileRef ref : sysFileRefs) {
@@ -442,7 +466,7 @@ public class PlanQuarterServiceImpl implements PlanQuarterService {
                 sysFileRefMapper.insert(ref);
             }
         }
-        int review = planQuarterMapper.review(quarters);
+        int review = planQuarterMapper.review(vo);
         if (review != 1) {
             return AjaxResult.error("项目状态数据异常");
         }
@@ -451,11 +475,9 @@ public class PlanQuarterServiceImpl implements PlanQuarterService {
 
     @Override
     public AjaxResult appUpdate(PlanQuarterStandardVo vo) {
-        PlanQuarter quarters = new PlanQuarter();
-        BeanUtils.copyProperties(vo, quarters);
         //申请后会成为未提交的状态,可以进行修改
-        quarters.setProjectStatus(ProjectStatus.PLANWAITCOMMIT.getCode());
-        int review = planQuarterMapper.review(quarters);
+        vo.setProjectStatus(ProjectStatus.PLANWAITCOMMIT.getCode());
+        int review = planQuarterMapper.review(vo);
         if (review != 1) {
             return AjaxResult.error("项目状态数据异常");
         }

+ 43 - 18
purchase-system/src/main/java/com/ozs/plan/service/impl/PlanYearsServiceImpl.java

@@ -10,6 +10,7 @@ import com.ozs.common.core.domain.entity.SysDictData;
 import com.ozs.common.core.domain.entity.SysRole;
 import com.ozs.common.core.domain.entity.SysUser;
 import com.ozs.common.core.domain.model.LoginUser;
+import com.ozs.common.enums.DataIsDelete;
 import com.ozs.common.enums.IsExcess;
 import com.ozs.common.enums.PmProjectStatus;
 import com.ozs.common.enums.ProjectStatus;
@@ -40,6 +41,7 @@ import com.ozs.system.service.ISysDictTypeService;
 import com.ozs.system.service.ISysUserService;
 import com.ozs.system.service.SysFileService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -92,6 +94,9 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
         List<PlanYears> planYearsList = new ArrayList<>();
         try {
             BeanUtils.copyProperties(vo, ofYears);
+            if (!ObjectUtils.isEmpty(vo.getPurchaseDeptId())) {
+                ofYears.setPurchaseDeptId(Long.valueOf(vo.getPurchaseDeptId()));
+            }
             planYears = planYearsMapper.selectPlanYearsList(ofYears);
             planYearsList = changeTo(planYears);
         } catch (Exception e) {
@@ -128,6 +133,7 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
                 if (!ObjectUtils.isEmpty(vo.getEndTime())) {
                     lw.le(PlanYears::getPlanDemandSubTime, vo.getEndTime());
                 }
+                lw.eq(PlanYears::getDelFlay, DataIsDelete.DataNOTDelete);
                 Page<PlanYears> page = planYearsMapper.selectPage(new Page<PlanYears>(num, size, false), lw);
                 list.addAll(page.getRecords());
                 size = page.getRecords().size();
@@ -147,6 +153,7 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
         List<PlanYears> planYearsList = new ArrayList<>();
         try {
             BeanUtils.copyProperties(vo, ofYears);
+            ofYears.setPurchaseDeptId(Long.valueOf(vo.getPurchaseDeptId()));
             planYears = planYearsMapper.selectPlanYearsExamineList(ofYears);
             planYearsList = changeTo(planYears);
         } catch (Exception e) {
@@ -185,6 +192,7 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
                 if (!ObjectUtils.isEmpty(vo.getEndTime())) {
                     lw.le(PlanYears::getPlanDemandSubTime, vo.getEndTime());
                 }
+                lw.eq(PlanYears::getDelFlay, DataIsDelete.DataNOTDelete);
                 Page<PlanYears> page = planYearsMapper.selectPage(new Page<PlanYears>(num, size, false), lw);
                 list.addAll(page.getRecords());
                 size = page.getRecords().size();
@@ -206,6 +214,7 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
         PlanYears ofYears = new PlanYears();
         try {
             BeanUtils.copyProperties(yearsStandardVo, ofYears);
+            ofYears.setPurchaseDeptId(Long.valueOf(yearsStandardVo.getPurchaseDeptId()));
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -278,6 +287,7 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
         PlanYears ofYears = new PlanYears();
         try {
             BeanUtils.copyProperties(yearsStandardVo, ofYears);
+            ofYears.setPurchaseDeptId(Long.valueOf(yearsStandardVo.getPurchaseDeptId()));
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -335,7 +345,7 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
                     //采购单位
                     SysDept info = deptMapper.checkDeptNameOnlyOne(ofYear.getPurchaseDeptName());
                     if (!ObjectUtils.isEmpty(info)) {
-                        ofYear.setPurchaseDeptId(String.valueOf(info.getDeptId()));
+                        ofYear.setPurchaseDeptId(info.getDeptId());
                     } else {
                         ++failureNum;
                         failureMsg.append("*" + failureNum + "*采购单位“" + ofYear.getPurchaseDeptName() + "”不存在");
@@ -424,29 +434,46 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
     @Override
     @Transactional
     public AjaxResult reviewTo(PlanYearsStandardVo vo) {
+        //年度计划审核通过后同步到季度计划和项目管理
         PlanYears ofYears = new PlanYears();
-        BeanUtils.copyProperties(vo, ofYears);
-        //年度计划审核通过后同步到季度计划
-        PlanYears byId = planYearsMapper.getById(vo.getPlanYearId());
         PlanQuarter quarters = new PlanQuarter();
+        PmDemand demand = new PmDemand();
+        PlanYears byId = planYearsMapper.getById(vo.getPlanYearId());
         BeanUtils.copyProperties(byId, quarters);
-        quarters.setProjectStatus(ProjectStatus.PLANWAITCOMMIT.getCode());
+        BeanUtils.copyProperties(byId, demand);
+        //同步到季度计划状态为已审核
+        quarters.setPlanYearId(byId.getPlanYearId());
+        quarters.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
         planQuarterMapper.insertPlanQuarter(quarters);
-        ofYears.setPlanYearId(vo.getPlanYearId());
-        ofYears.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
-        return review(vo, ofYears);
+        //同步到项目管理状态为需求待填制
+        demand.setPlanId(quarters.getPlanPracticalId());
+        demand.setProjectStatus(Long.valueOf(PmProjectStatus.DEMAND_WAIT_FILL.getCode()));
+        pmDemandMapper.insert(demand);
+        //计划附件也进行同步---查询年度计划附件后复制一份改为项目需求附件
+        LambdaQueryWrapper<SysFileRef> sysFileRefLp = new LambdaQueryWrapper<>();
+        sysFileRefLp.eq(SysFileRef::getType, SysFileRefEnum.PLAN_YEAR.getType());
+        sysFileRefLp.eq(SysFileRef::getRedId, vo.getPlanYearId());
+        List<SysFileRef> sysFileRefs = sysFileRefMapper.selectList(sysFileRefLp);
+        if (!ObjectUtils.isEmpty(sysFileRefs)) {
+            for (SysFileRef ref : sysFileRefs) {
+                ref.setRedId(demand.getDemandId());
+                ref.setType(SysFileRefEnum.PM_DEMAND.getType());
+                ref.setId(null);
+                sysFileRefMapper.insert(ref);
+            }
+        }
+        vo.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
+        return review(vo);
     }
 
     @Override
     @Transactional
     public AjaxResult reviewReturn(PlanYearsStandardVo vo) {
-        PlanYears ofYears = new PlanYears();
-        BeanUtils.copyProperties(vo, ofYears);
-        ofYears.setProjectStatus(ProjectStatus.PLANTOBACK.getCode());
-        return review(vo, ofYears);
+        vo.setProjectStatus(ProjectStatus.PLANTOBACK.getCode());
+        return review(vo);
     }
 
-    private AjaxResult review(PlanYearsStandardVo vo, PlanYears ofYears) {
+    private AjaxResult review(PlanYearsStandardVo vo) {
         List<SysFileRef> sysFileRefs = vo.getSysFileRefs();
         if (!ObjectUtils.isEmpty(sysFileRefs)) {
             for (SysFileRef ref : sysFileRefs) {
@@ -459,7 +486,7 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
                 sysFileRefMapper.insert(ref);
             }
         }
-        int review = planYearsMapper.review(ofYears);
+        int review = planYearsMapper.review(vo);
         if (review != 1) {
             return AjaxResult.error("项目状态数据异常");
         }
@@ -468,11 +495,9 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
 
     @Override
     public AjaxResult appUpdate(PlanYearsStandardVo vo) {
-        PlanYears ofYears = new PlanYears();
-        BeanUtils.copyProperties(vo, ofYears);
         //申请后会成为未提交的状态,可以进行修改
-        ofYears.setProjectStatus(ProjectStatus.PLANWAITCOMMIT.getCode());
-        int review = planYearsMapper.review(ofYears);
+        vo.setProjectStatus(ProjectStatus.PLANWAITCOMMIT.getCode());
+        int review = planYearsMapper.review(vo);
         if (review != 1) {
             return AjaxResult.error("项目状态数据异常");
         }

+ 181 - 174
purchase-system/src/main/java/com/ozs/pm/service/impl/PmDemandServiceImpl.java

@@ -722,7 +722,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         pmDemand.setProjectStatus(Long.parseLong(PmProjectStatus.WAIT_SELECT_AGENT.getCode()));
         List<SysFileRef> sysFileRefs = pmDemandReqVo.getSysFileRefs();
 
-        uploadFile(pmDemandReqVo.getDemandId(),SysFileRefEnum.PM_TAST_RELEASE.getType(),sysFileRefs,pmDemandReqVo.getUpdateBy());
+        uploadFile(pmDemandReqVo.getDemandId(), SysFileRefEnum.PM_TAST_RELEASE.getType(), sysFileRefs, pmDemandReqVo.getUpdateBy());
         pmDemand.setUpdateBy(pmDemandReqVo.getUpdateBy());
         pmDemand.setUpdateTime(DateUtils.getNowDate());
         pmDemand.setAuditTime(DateUtils.getNowDate());
@@ -730,17 +730,18 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
     }
 
 
-    public boolean uploadFile(Long redId,Integer fileType, List<SysFileRef> sysFileRefs,String upateBy){
+    @Override
+    public boolean uploadFile(Long redId, Integer fileType, List<SysFileRef> sysFileRefs, String upateBy) {
 
         if (!ObjectUtils.isEmpty(sysFileRefs)) {
             for (SysFileRef ref : sysFileRefs) {
-                if(ref.getFileId() == null){
+                if (ref.getFileId() == null) {
                     continue;
                 }
                 QueryWrapper<SysFileRef> queryWrapper = new QueryWrapper<>();
-                queryWrapper.lambda().eq(SysFileRef::getFileId,ref.getFileId())
-                        .eq(SysFileRef::getRedId,redId)
-                        .eq(SysFileRef::getType,fileType);
+                queryWrapper.lambda().eq(SysFileRef::getFileId, ref.getFileId())
+                        .eq(SysFileRef::getRedId, redId)
+                        .eq(SysFileRef::getType, fileType);
                 List<SysFileRef> sysFileRefList = sysFileRefService.list(queryWrapper);
                 if(!CollectionUtils.isEmpty(sysFileRefList)){
                     sysFileRefService.remove(queryWrapper);
@@ -760,6 +761,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
 
     }
 
+    @Override
     public boolean insertPmReleaseAnnouncement(PmReleaseAnnouncementReqVo pmReleaseAnnouncementReqVo) throws Exception {
 
         PmReleaseAnnouncement pmReleaseAnnouncement = new PmReleaseAnnouncement();
@@ -771,8 +773,8 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                 pmDemandUpdate.setProjectStatus(Long.parseLong(PmProjectStatus.WAIT_OPEN_BID.getCode()));
                 pmDemandUpdate.setUpdateTime(pmReleaseAnnouncementReqVo.getUpdateTime());
                 pmDemandUpdate.setUpdateBy(pmReleaseAnnouncementReqVo.getUpdateBy());
-                 return this.updateById(pmDemandUpdate);
-                 //TODO 发布公告生成后,会默认将该数据同步到公告管理和首页中
+                return this.updateById(pmDemandUpdate);
+                //TODO 发布公告生成后,会默认将该数据同步到公告管理和首页中
 
             } else {
                 return false;
@@ -783,6 +785,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
 
     }
 
+    @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean insertExpertBatch(PmBaseExpertFillReqVo pmBaseExpertFillReqVo) throws Exception {
         PmDemand pmDemand = this.getById(pmBaseExpertFillReqVo.getDemandId());
@@ -820,178 +823,182 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
             pmDemandExpertRefList.add(pmDemandExpertRef);
         }
 
-          if (baseExpertService.saveOrUpdateBatch(baseExpertList)){
-              return pmDemandExpertRefService.saveBatch(pmDemandExpertRefList);
-          } else {
-              return false;
-          }
+        if (baseExpertService.saveOrUpdateBatch(baseExpertList)){
+            return pmDemandExpertRefService.saveBatch(pmDemandExpertRefList);
+        } else {
+            return false;
+        }
     }
 
-   public boolean extractExpertBatch(PmBaseExpertExtractReqVo pmBaseExpertExtractReqVo) throws Exception {
-       Integer technicalExpertNumber = pmBaseExpertExtractReqVo.getTechnicalExpertNumber();
-       if(technicalExpertNumber== null){
-           technicalExpertNumber = 0;
-       }
-       Integer economicExpertNumber = pmBaseExpertExtractReqVo.getEconomicExpertNumber();
-       if(economicExpertNumber == null){
-           economicExpertNumber = 0;
-       }
-       Integer legalAffairsExpertNumber = pmBaseExpertExtractReqVo.getLegalAffairsExpertNumber();
-       if(legalAffairsExpertNumber == null){
-           legalAffairsExpertNumber = 0;
-       }
-       Integer spareExpertNumber = pmBaseExpertExtractReqVo.getSpareExpertNumber();
-       if(spareExpertNumber == null){
-           spareExpertNumber = 0;
-       }
-
-       String  professional = pmBaseExpertExtractReqVo.getProfessional();
-       if(spareExpertNumber > 0 && ObjectUtils.isEmpty(professional)){
-           throw new Exception("抽取备用专家必须选择专家专业");
-       }
-       String  localArea = pmBaseExpertExtractReqVo.getLocalArea();
-       if(spareExpertNumber > 0 && ObjectUtils.isEmpty(localArea)){
-           throw new Exception("抽取备用专家必须选择所在区域");
-       }
-
-       PmDemand pmDemand = this.getById(pmBaseExpertExtractReqVo.getDemandId());
-       if(ObjectUtils.isEmpty(pmDemand)){
-           throw new Exception("参数错误");
-       }
-
-       LambdaQueryWrapper<BaseExpert> lw = new LambdaQueryWrapper<BaseExpert>();
-       lw.eq(BaseExpert::getVarietyPurchase,pmDemand.getProjectType())
-               .eq(BaseExpert::getStatus,NameListType.WHITE.getCode());
-       List<BaseExpert> baseExpertList = baseExpertService.list(lw);
-       if(ObjectUtils.isEmpty(baseExpertList)){
-           throw new Exception("没抽取到符合条件的专家");
-       }
-
-       List<BaseExpert> technicalExpertList = new ArrayList<>();
-       List<BaseExpert> economicExpertList = new ArrayList<>();
-       List<BaseExpert> legalAffairsExpertList = new ArrayList<>();
-       List<BaseExpert> spareExpertList = new ArrayList<>();
-
-       for(BaseExpert baseExpert : baseExpertList){
-           if(technicalExpertNumber > 0) {
-               if(ExpertType.TECHNICAL_EXPERT.getCode().equals(baseExpert.getExpertType())){
-                   technicalExpertList.add(baseExpert);
-               }
-           }
-
-           if(economicExpertNumber > 0) {
-               if(ExpertType.ECONOMIC_EXPERT.getCode().equals(baseExpert.getExpertType())){
-                   economicExpertList.add(baseExpert);
-               }
-           }
-
-           if (legalAffairsExpertNumber > 0) {
-               if(ExpertType.LEGALAFFAIRS_EXPERT.getCode().equals(baseExpert.getExpertType())){
-                   legalAffairsExpertList.add(baseExpert);
-               }
-           }
-
-           if (spareExpertNumber > 0) {
-               String[] arr = professional.split(",");
-               List<String> professionalList = Arrays.asList(arr);
-               String majorType = baseExpert.getMajorType();
-               //TODO 所在区域判读
-
-               if(!ObjectUtils.isEmpty(majorType)){
-                   if(professionalList.contains(majorType)){
-                       spareExpertList.add(baseExpert);
-                   }
-               }
-           }
-       }
-
-       List<BaseExpert> alltExpertList = new ArrayList<>();
-       if(!ObjectUtils.isEmpty(technicalExpertList)){
-           alltExpertList.addAll(RandomUtil.getRandomList(technicalExpertList,technicalExpertNumber));
-       }
-       if(!ObjectUtils.isEmpty(economicExpertList)){
-           alltExpertList.addAll(RandomUtil.getRandomList(economicExpertList,economicExpertNumber));
-       }
-       if(!ObjectUtils.isEmpty(legalAffairsExpertList)){
-           alltExpertList.addAll(RandomUtil.getRandomList(legalAffairsExpertList,legalAffairsExpertNumber));
-       }
-       if(!ObjectUtils.isEmpty(spareExpertList)){
-           alltExpertList.addAll(RandomUtil.getRandomList(spareExpertList,spareExpertNumber));
-       }
-
-      if(ObjectUtils.isEmpty(alltExpertList)){
-          throw new Exception("没抽取到符合条件的专家");
-      } else {
-          List<PmDemandExpertRef> pmDemandExpertRefList = new ArrayList<>();
-          for(BaseExpert baseExpert :alltExpertList ) {
-              PmDemandExpertRef pmDemandExpertRef = new PmDemandExpertRef();
-              pmDemandExpertRef.setDemandId(pmDemand.getDemandId());
-              pmDemandExpertRef.setExpertId(baseExpert.getId().longValue());
-              pmDemandExpertRef.setCreateBy(pmBaseExpertExtractReqVo.getCreateBy());
-              pmDemandExpertRef.setAccessTime(DateUtils.parseDate(pmBaseExpertExtractReqVo.getAccessTime()));
-              pmDemandExpertRef.setCreateTime(new Date());
-              pmDemandExpertRef.setUpdateBy(pmBaseExpertExtractReqVo.getCreateBy());
-              pmDemandExpertRef.setUpdateTime(pmDemandExpertRef.getCreateTime());
-              pmDemandExpertRefList.add(pmDemandExpertRef);
-          }
-          return pmDemandExpertRefService.saveBatch(pmDemandExpertRefList);
-      }
+    @Override
+    public boolean extractExpertBatch(PmBaseExpertExtractReqVo pmBaseExpertExtractReqVo) throws Exception {
+        Integer technicalExpertNumber = pmBaseExpertExtractReqVo.getTechnicalExpertNumber();
+        if(technicalExpertNumber== null){
+            technicalExpertNumber = 0;
+        }
+        Integer economicExpertNumber = pmBaseExpertExtractReqVo.getEconomicExpertNumber();
+        if(economicExpertNumber == null){
+            economicExpertNumber = 0;
+        }
+        Integer legalAffairsExpertNumber = pmBaseExpertExtractReqVo.getLegalAffairsExpertNumber();
+        if(legalAffairsExpertNumber == null){
+            legalAffairsExpertNumber = 0;
+        }
+        Integer spareExpertNumber = pmBaseExpertExtractReqVo.getSpareExpertNumber();
+        if(spareExpertNumber == null){
+            spareExpertNumber = 0;
+        }
+
+        String  professional = pmBaseExpertExtractReqVo.getProfessional();
+        if(spareExpertNumber > 0 && ObjectUtils.isEmpty(professional)){
+            throw new Exception("抽取备用专家必须选择专家专业");
+        }
+        String  localArea = pmBaseExpertExtractReqVo.getLocalArea();
+        if(spareExpertNumber > 0 && ObjectUtils.isEmpty(localArea)){
+            throw new Exception("抽取备用专家必须选择所在区域");
+        }
+
+        PmDemand pmDemand = this.getById(pmBaseExpertExtractReqVo.getDemandId());
+        if(ObjectUtils.isEmpty(pmDemand)){
+            throw new Exception("参数错误");
+        }
+
+        LambdaQueryWrapper<BaseExpert> lw = new LambdaQueryWrapper<BaseExpert>();
+        lw.eq(BaseExpert::getVarietyPurchase,pmDemand.getProjectType())
+                .eq(BaseExpert::getStatus,NameListType.WHITE.getCode());
+        List<BaseExpert> baseExpertList = baseExpertService.list(lw);
+        if(ObjectUtils.isEmpty(baseExpertList)){
+            throw new Exception("没抽取到符合条件的专家");
+        }
+
+        List<BaseExpert> technicalExpertList = new ArrayList<>();
+        List<BaseExpert> economicExpertList = new ArrayList<>();
+        List<BaseExpert> legalAffairsExpertList = new ArrayList<>();
+        List<BaseExpert> spareExpertList = new ArrayList<>();
+
+        for(BaseExpert baseExpert : baseExpertList){
+            if(technicalExpertNumber > 0) {
+                if(ExpertType.TECHNICAL_EXPERT.getCode().equals(baseExpert.getExpertType())){
+                    technicalExpertList.add(baseExpert);
+                }
+            }
+
+            if(economicExpertNumber > 0) {
+                if(ExpertType.ECONOMIC_EXPERT.getCode().equals(baseExpert.getExpertType())){
+                    economicExpertList.add(baseExpert);
+                }
+            }
+
+            if (legalAffairsExpertNumber > 0) {
+                if(ExpertType.LEGALAFFAIRS_EXPERT.getCode().equals(baseExpert.getExpertType())){
+                    legalAffairsExpertList.add(baseExpert);
+                }
+            }
+
+            if (spareExpertNumber > 0) {
+                String[] arr = professional.split(",");
+                List<String> professionalList = Arrays.asList(arr);
+                String majorType = baseExpert.getMajorType();
+                //TODO 所在区域判读
+
+                if(!ObjectUtils.isEmpty(majorType)){
+                    if(professionalList.contains(majorType)){
+                        spareExpertList.add(baseExpert);
+                    }
+                }
+            }
+        }
+
+        List<BaseExpert> alltExpertList = new ArrayList<>();
+        if(!ObjectUtils.isEmpty(technicalExpertList)){
+            alltExpertList.addAll(RandomUtil.getRandomList(technicalExpertList,technicalExpertNumber));
+        }
+        if(!ObjectUtils.isEmpty(economicExpertList)){
+            alltExpertList.addAll(RandomUtil.getRandomList(economicExpertList,economicExpertNumber));
+        }
+        if(!ObjectUtils.isEmpty(legalAffairsExpertList)){
+            alltExpertList.addAll(RandomUtil.getRandomList(legalAffairsExpertList,legalAffairsExpertNumber));
+        }
+        if(!ObjectUtils.isEmpty(spareExpertList)){
+            alltExpertList.addAll(RandomUtil.getRandomList(spareExpertList,spareExpertNumber));
+        }
+
+        if(ObjectUtils.isEmpty(alltExpertList)){
+            throw new Exception("没抽取到符合条件的专家");
+        } else {
+            List<PmDemandExpertRef> pmDemandExpertRefList = new ArrayList<>();
+            for(BaseExpert baseExpert :alltExpertList ) {
+                PmDemandExpertRef pmDemandExpertRef = new PmDemandExpertRef();
+                pmDemandExpertRef.setDemandId(pmDemand.getDemandId());
+                pmDemandExpertRef.setExpertId(baseExpert.getId().longValue());
+                pmDemandExpertRef.setCreateBy(pmBaseExpertExtractReqVo.getCreateBy());
+                pmDemandExpertRef.setAccessTime(DateUtils.parseDate(pmBaseExpertExtractReqVo.getAccessTime()));
+                pmDemandExpertRef.setCreateTime(new Date());
+                pmDemandExpertRef.setUpdateBy(pmBaseExpertExtractReqVo.getCreateBy());
+                pmDemandExpertRef.setUpdateTime(pmDemandExpertRef.getCreateTime());
+                pmDemandExpertRefList.add(pmDemandExpertRef);
+            }
+            return pmDemandExpertRefService.saveBatch(pmDemandExpertRefList);
+        }
     }
 
+    @Override
     @Transactional(rollbackFor = Exception.class)
-   public boolean insertBidOpeningBatch(PmBidOpeningFillReqVo pmBidOpeningFillReqVo) throws Exception {
-       PmDemand pmDemand = this.getById(pmBidOpeningFillReqVo.getDemandId());
-       if(ObjectUtils.isEmpty(pmDemand)){
-           throw new Exception("参数错误");
-       }
-       Date now = new Date();
-       List<PmBidOpening> pmBidOpeningList = pmBidOpeningFillReqVo.getPmBidOpeningList();
-       for (PmBidOpening pmBidOpening : pmBidOpeningList) {
-           if(ObjectUtils.isEmpty(pmBidOpening.getBidderName())){
-               throw new Exception("投标人名称不能为空");
-           }
-           if(ObjectUtils.isEmpty(pmBidOpening.getScore())){
-               throw new Exception("分数不能为空");
-           }
-           pmBidOpening.setDemandId(pmBidOpeningFillReqVo.getDemandId());
-           pmBidOpening.setOpenBidTime(now); //TODO
-           pmBidOpening.setCreateBy(pmBidOpeningFillReqVo.getCreateBy());
-           pmBidOpening.setCreateTime(now);
-           pmBidOpening.setUpdateBy(pmBidOpeningFillReqVo.getUpdateBy());
-           pmBidOpening.setUpdateTime(now);
-       }
-       if(pmBidOpeningService.saveBatch(pmBidOpeningList)) {
-           PmDemand pmDemandUpdate = new PmDemand();
-           pmDemandUpdate.setDemandId(pmDemand.getDemandId());
-           pmDemandUpdate.setProjectStatus(Long.parseLong(PmProjectStatus.WAIT_BID_ANNOUNCEMENT.getCode()));
-           pmDemandUpdate.setUpdateTime(now);
-           pmDemandUpdate.setUpdateBy(pmBidOpeningFillReqVo.getUpdateBy());
-           return this.updateById(pmDemandUpdate);
-       } else {
-           return false;
-       }
-   }
-
-   public boolean insertPmBidWinning(PmBidWinningReqVo pmBidWinningReqVo) throws Exception {
-       uploadFile(pmBidWinningReqVo.getId(), SysFileRefEnum.PM_BID_WINNING_FILE.getType(),pmBidWinningReqVo.getSysFileRefs(),pmBidWinningReqVo.getUpdateBy());
-       PmBidWinning pmBidWinning = new PmBidWinning();
-       BeanUtils.copyProperties(pmBidWinningReqVo,pmBidWinning);
-       if(pmBidWinningService.save(pmBidWinning)){
-           if(uploadFile(pmBidWinning.getId(), SysFileRefEnum.PM_BID_WINNING_FILE.getType(),pmBidWinningReqVo.getSysFileRefs(),pmBidWinningReqVo.getUpdateBy())) {
-               PmDemand pmDemandUpdate = new PmDemand();
-               pmDemandUpdate.setDemandId(pmBidWinningReqVo.getDemandId());
-               pmDemandUpdate.setProjectStatus(Long.parseLong(PmProjectStatus.BIDDING_PUBLICITY.getCode()));
-               pmDemandUpdate.setUpdateTime(pmBidWinningReqVo.getUpdateTime());
-               pmDemandUpdate.setUpdateBy(pmBidWinningReqVo.getUpdateBy());
-               return this.updateById(pmDemandUpdate);
-           } else {
-               return false;
-           }
-       } else {
-           return false;
-       }
-   }
+    public boolean insertBidOpeningBatch(PmBidOpeningFillReqVo pmBidOpeningFillReqVo) throws Exception {
+        PmDemand pmDemand = this.getById(pmBidOpeningFillReqVo.getDemandId());
+        if(ObjectUtils.isEmpty(pmDemand)){
+            throw new Exception("参数错误");
+        }
+        Date now = new Date();
+        List<PmBidOpening> pmBidOpeningList = pmBidOpeningFillReqVo.getPmBidOpeningList();
+        for (PmBidOpening pmBidOpening : pmBidOpeningList) {
+            if(ObjectUtils.isEmpty(pmBidOpening.getBidderName())){
+                throw new Exception("投标人名称不能为空");
+            }
+            if(ObjectUtils.isEmpty(pmBidOpening.getScore())){
+                throw new Exception("分数不能为空");
+            }
+            pmBidOpening.setDemandId(pmBidOpeningFillReqVo.getDemandId());
+            pmBidOpening.setOpenBidTime(now); //TODO
+            pmBidOpening.setCreateBy(pmBidOpeningFillReqVo.getCreateBy());
+            pmBidOpening.setCreateTime(now);
+            pmBidOpening.setUpdateBy(pmBidOpeningFillReqVo.getUpdateBy());
+            pmBidOpening.setUpdateTime(now);
+        }
+        if(pmBidOpeningService.saveBatch(pmBidOpeningList)) {
+            PmDemand pmDemandUpdate = new PmDemand();
+            pmDemandUpdate.setDemandId(pmDemand.getDemandId());
+            pmDemandUpdate.setProjectStatus(Long.parseLong(PmProjectStatus.WAIT_BID_ANNOUNCEMENT.getCode()));
+            pmDemandUpdate.setUpdateTime(now);
+            pmDemandUpdate.setUpdateBy(pmBidOpeningFillReqVo.getUpdateBy());
+            return this.updateById(pmDemandUpdate);
+        } else {
+            return false;
+        }
+    }
 
+    @Override
+    public boolean insertPmBidWinning(PmBidWinningReqVo pmBidWinningReqVo) throws Exception {
+        uploadFile(pmBidWinningReqVo.getId(), SysFileRefEnum.PM_BID_WINNING_FILE.getType(),pmBidWinningReqVo.getSysFileRefs(),pmBidWinningReqVo.getUpdateBy());
+        PmBidWinning pmBidWinning = new PmBidWinning();
+        BeanUtils.copyProperties(pmBidWinningReqVo,pmBidWinning);
+        if(pmBidWinningService.save(pmBidWinning)){
+            if(uploadFile(pmBidWinning.getId(), SysFileRefEnum.PM_BID_WINNING_FILE.getType(),pmBidWinningReqVo.getSysFileRefs(),pmBidWinningReqVo.getUpdateBy())) {
+                PmDemand pmDemandUpdate = new PmDemand();
+                pmDemandUpdate.setDemandId(pmBidWinningReqVo.getDemandId());
+                pmDemandUpdate.setProjectStatus(Long.parseLong(PmProjectStatus.BIDDING_PUBLICITY.getCode()));
+                pmDemandUpdate.setUpdateTime(pmBidWinningReqVo.getUpdateTime());
+                pmDemandUpdate.setUpdateBy(pmBidWinningReqVo.getUpdateBy());
+                return this.updateById(pmDemandUpdate);
+            } else {
+                return false;
+            }
+        } else {
+            return false;
+        }
+    }
+
+    @Override
     public boolean insertPmBidFailure(PmBidFailureReqVo pmBidFailureReqVo) throws Exception {
 
         PmBidFailure pmBidFailure = new PmBidFailure();

+ 9 - 4
purchase-system/src/main/resources/mapper/plan/PlanQuarterMapper.xml

@@ -136,13 +136,15 @@
 
     <!--	创建计划信息-->
     <insert id="insertPlanQuarter" parameterType="com.ozs.plan.doman.PlanQuarter" useGeneratedKeys="true"
-            keyProperty="planYearId">
-        insert into plan_practical (purchase_dept_id, project_name, project_type, demand_overview, evaluation,
+            keyProperty="planPracticalId">
+        insert into plan_practical (purchase_dept_id, plan_year_id, project_name, project_type, demand_overview,
+                                    evaluation,
                                     is_excess,
                                     purchase_services, purchase_mode, plan_demand_sub_time, plan_purchase_finish_time,
                                     plan_deliver_time, project_attr, adjust_reason, remarks, project_status,
                                     created, create_time, del_flay, plan_type, send_letter)
-        values (#{purchaseDeptId}, #{projectName}, #{projectType}, #{demandOverview}, #{evaluation}, #{isExcess},
+        values (#{purchaseDeptId}, #{planYearId}, #{projectName}, #{projectType}, #{demandOverview}, #{evaluation},
+                #{isExcess},
                 #{purchaseServices}, #{purchaseMode}, #{planDemandSubTime}, #{planPurchaseFinishTime},
                 #{planDeliverTime},
                 #{projectAttr}, #{adjustReason}, #{remarks}, #{projectStatus}, #{created}, #{createTime}, 0, 0, 0)
@@ -170,7 +172,7 @@
     </update>
 
     <!--	计划审核-->
-    <update id="review" parameterType="com.ozs.plan.doman.PlanQuarter">
+    <update id="review" parameterType="com.ozs.plan.doman.vo.requestVo.PlanQuarterStandardVo">
         update plan_practical
         <set>
             <if test="refuseReason != null and refuseReason != ''">
@@ -179,6 +181,9 @@
             <if test="projectStatus != null and projectStatus != ''">
                 project_status=#{projectStatus}
             </if>
+            <if test="adjustReason != null and adjustReason != ''">
+                adjust_reason=#{adjustReason}
+            </if>
         </set>
         where plan_practical_id = #{planPracticalId}
     </update>

+ 12 - 3
purchase-system/src/main/resources/mapper/plan/PlanYearsMapper.xml

@@ -162,10 +162,19 @@
 	</update>
 
 	<!--	计划审核-->
-	<update id="review" parameterType="com.ozs.plan.doman.PlanYears">
+	<update id="review" parameterType="com.ozs.plan.doman.vo.requestVo.PlanYearsStandardVo">
 		update plan_years
-		set refuse_reason=#{refuseReason},
-			project_status=#{projectStatus}
+		<set>
+			<if test="refuseReason != null and refuseReason != ''">
+				refuse_reason=#{refuseReason},
+			</if>
+			<if test="projectStatus != null and projectStatus != ''">
+				project_status=#{projectStatus}
+			</if>
+			<if test="adjustReason != null and adjustReason != ''">
+				adjust_reason=#{adjustReason}
+			</if>
+		</set>
 		where plan_year_id = #{planYearId}
 	</update>