123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691 |
- package com.ozs.pm.service.impl;
- import java.util.*;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.ozs.common.enums.*;
- 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.*;
- import com.ozs.pm.doman.vo.responseVo.*;
- import com.ozs.pm.mapper.PmDemandMapper;
- import com.ozs.pm.service.*;
- import com.ozs.system.domain.SysFileInfo;
- import com.ozs.system.domain.SysFileRef;
- import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo;
- import com.ozs.system.service.ISysDeptService;
- import com.ozs.system.service.ISysDictDataService;
- import com.ozs.system.service.SysFileRefService;
- import com.ozs.system.service.SysFileService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.util.ObjectUtils;
- /**
- * 采购需求Service业务层处理
- *
- * @author ruoyi
- * @date 2023-01-16
- */
- @Service
- public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> implements IPmDemandService
- {
- @Autowired
- private PmDemandMapper pmDemandMapper;
- @Autowired
- private IPmDemandEquipService iPmDemandEquipService;
- @Autowired
- private IPmDemandMaterialsService iPmDemandMaterialsService;
- @Autowired
- private IPmDemandServeService iPmDemandServeService;
- @Autowired
- private IPmDemandEngineeringService iPmDemandEngineeringService;
- @Autowired
- private ISysDeptService deptService;
- @Autowired
- private ISysDictDataService dictDataService;
- @Autowired
- private SysFileService fileService;
- @Autowired
- private SysFileRefService sysFileRefService;
- @Autowired
- private IPmFlowChartService iPmFlowChartService;
- /**
- * 查询采购需求
- *
- * @param demandId 采购需求主键
- * @return 采购需求
- */
- @Override
- public PmDemandResVo selectPmDemandByDemandId(Long demandId) {
- PmDemand pmDemand = pmDemandMapper.selectPmDemandByDemandId(demandId);
- if(pmDemand != null){
- PmDemandResVo vo = new PmDemandResVo();
- BeanUtils.copyProperties(pmDemand, vo);
- SysDeptResponseVo sysDeptResponseVo = (SysDeptResponseVo) deptService.selectDeptById(vo.getPurchaseDeptId()).get("sysDept");
- if(sysDeptResponseVo != null){
- vo.setPurchaseDeptName(sysDeptResponseVo.getDeptName());
- }
- String purchaseServicesName = dictDataService.selectDictLabel("purchase_services", vo.getPurchaseServices());
- if(StringUtils.isNotEmpty(purchaseServicesName)){
- vo.setPurchaseServicesName(purchaseServicesName);
- }
- 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);
- }
- //项目类型
- for (ProjectTypes value : ProjectTypes.values()) {
- if (vo.getProjectType() != null && vo.getProjectType().equals(value.getCode())) {
- vo.setProjectTypeName(value.getInfo());
- break;
- }
- }
- //是否为超限额计划
- for (IsExcess value : IsExcess.values()) {
- if (vo.getIsExcess() != null && vo.getIsExcess().equals(value.getCode())) {
- vo.setIsExcessName(value.getInfo());
- break;
- }
- }
- //采购方式
- for (PlanPurchaseMode value : PlanPurchaseMode.values()) {
- if (vo.getPurchaseMode() != null && vo.getPurchaseMode().equals(value.getCode())) {
- vo.setPurchaseModeName(value.getInfo());
- break;
- }
- }
- //项目属性
- for (ProjectAttribute value : ProjectAttribute.values()) {
- if (vo.getProjectAttr() != null && vo.getProjectAttr().equals(value.getCode())) {
- vo.setProjectAttrName(value.getInfo());
- break;
- }
- }
- //预警状态
- for (WarnStatus value : WarnStatus.values()) {
- if (vo.getWarnStatus() != null && vo.getWarnStatus().equals(value.getCode())) {
- vo.setWarnStatusName(value.getInfo());
- break;
- }
- }
- //项目状态
- for (PmProjectStatus value : PmProjectStatus.values()) {
- if (vo.getProjectStatus() != null && vo.getProjectStatus().equals(value.getCode())) {
- vo.setProjectStatusName(value.getInfo());
- break;
- }
- }
- if(ProjectTypes.EQUIPMENTTYPE.getCode().equals(vo.getProjectType())){//装备类
- PmDemandEquip obj = new PmDemandEquip();
- obj.setDemandId(demandId);
- List<PmDemandEquip> list = iPmDemandEquipService.selectPmDemandEquipList(obj);
- if(list !=null && list.size() > 0){
- PmDemandEquipResVo responseVo = new PmDemandEquipResVo();
- BeanUtils.copyProperties(list.get(0),responseVo);
- //采购方式建议
- for (ProcurementMethodSuggest value : ProcurementMethodSuggest.values()) {
- if (responseVo.getProcurementMethodSuggest() != null && responseVo.getProcurementMethodSuggest().equals(value.getCode())) {
- responseVo.setProcurementMethodSuggestName(value.getInfo());
- break;
- }
- }
- HashMap<String, String> fileMap1 = getFileMap(vo.getDemandId(),SysFileRefEnum.PM_DEMAND_EQUIP.getType());
- if(fileMap1 != null){
- responseVo.setFileMap(fileMap1);
- }
- vo.setPmDemandEquipResVo(responseVo);
- }
- } else if(ProjectTypes.MATERIALTYPE.getCode().equals(vo.getProjectType())){ //物资类
- PmDemandMaterials obj = new PmDemandMaterials();
- obj.setDemandId(demandId);
- List<PmDemandMaterials> list = iPmDemandMaterialsService.selectPmDemandMaterialsList(obj);
- if(list !=null && list.size() > 0){
- PmDemandMaterialsResVo responseVo = new PmDemandMaterialsResVo();
- BeanUtils.copyProperties(list.get(0),responseVo);
- //采购方式建议
- for (ProcurementMethodSuggest value : ProcurementMethodSuggest.values()) {
- if (responseVo.getProcurementMethodSuggest() != null && responseVo.getProcurementMethodSuggest().equals(value.getCode())) {
- responseVo.setProcurementMethodSuggestName(value.getInfo());
- break;
- }
- }
- HashMap<String, String> fileMap2 = getFileMap(vo.getDemandId(),SysFileRefEnum.PM_DEMAND_MATERIALS.getType());
- if(fileMap2 != null){
- responseVo.setFileMap(fileMap2);
- }
- vo.setPmDemandMaterialsResVo(responseVo);
- }
- } else if(ProjectTypes.SERVICESTYPE.getCode().equals(vo.getProjectType())){//服务类
- PmDemandServe obj = new PmDemandServe();
- obj.setDemandId(demandId);
- List<PmDemandServe> list = iPmDemandServeService.selectPmDemandServeList(obj);
- if(list !=null && list.size() > 0){
- PmDemandServeResVo responseVo = new PmDemandServeResVo();
- BeanUtils.copyProperties(list.get(0),responseVo);
- //采购方式建议
- for (ProcurementMethodSuggest value : ProcurementMethodSuggest.values()) {
- if (responseVo.getProcurementMethodSuggest() != null && responseVo.getProcurementMethodSuggest().equals(value.getCode())) {
- responseVo.setProcurementMethodSuggestName(value.getInfo());
- break;
- }
- }
- HashMap<String, String> fileMap3 = getFileMap(vo.getDemandId(),SysFileRefEnum.PM_DEMAND_SERVE.getType());
- if(fileMap3 != null){
- responseVo.setFileMap(fileMap3);
- }
- vo.setPmDemandServeResVo(responseVo);
- }
- } else if(ProjectTypes.PLANTOEXAMINETYPE.getCode().equals(vo.getProjectType())){//工程类
- PmDemandEngineering obj = new PmDemandEngineering();
- obj.setDemandId(demandId);
- List<PmDemandEngineering> list = iPmDemandEngineeringService.selectPmDemandEngineeringList(obj);
- if(list !=null && list.size() > 0){
- PmDemandEngineeringResVo responseVo = new PmDemandEngineeringResVo();
- BeanUtils.copyProperties(list.get(0),responseVo);
- //采购方式建议
- for (ProcurementMethodSuggest value : ProcurementMethodSuggest.values()) {
- if (responseVo.getProcurementMethodSuggest() != null && responseVo.getProcurementMethodSuggest().equals(value.getCode())) {
- responseVo.setProcurementMethodSuggestName(value.getInfo());
- break;
- }
- }
- //项目类别
- for (EngineeringProjectCategory value : EngineeringProjectCategory.values()) {
- if (responseVo.getProjectCategory() != null && responseVo.getProjectCategory().equals(value.getCode())) {
- responseVo.setProjectCategoryName(value.getInfo());
- break;
- }
- }
- //承包方式
- for (EngineeringContractingMode value : EngineeringContractingMode.values()) {
- if (responseVo.getContractingMode() != null && responseVo.getContractingMode().equals(value.getCode())) {
- responseVo.setContractingModeName(value.getInfo());
- break;
- }
- }
- //施工图是否完成
- for (ConstructionDrawing value : ConstructionDrawing.values()) {
- if (responseVo.getConstructionDrawing() != null && responseVo.getConstructionDrawing().equals(value.getCode())) {
- responseVo.setConstructionDrawingName(value.getInfo());
- break;
- }
- }
- HashMap<String, String> fileMap4 = getFileMap(vo.getDemandId(),SysFileRefEnum.PM_DEMAND_ENGINEERING.getType());
- if(fileMap4 != null){
- responseVo.setFileMap(fileMap4);
- }
- vo.setPmDemandEngineeringResVo(responseVo);
- }
- }
- return vo;
- } else {
- return null;
- }
- }
- /**
- * 查询采购需求列表
- *
- * @param pmDemandReqVo
- * @return 采购需求
- */
- @Override
- public IPage<PmDemandResVo> selectPmDemandList(PmDemandReqVo pmDemandReqVo) {
- LambdaQueryWrapper<PmDemand> lw = new LambdaQueryWrapper<>();
- if (!StringUtils.isBlank(pmDemandReqVo.getProjectName())) {
- lw.like(PmDemand::getProjectName, "%" + pmDemandReqVo.getProjectName() + "%");
- }
- if (!StringUtils.isBlank(pmDemandReqVo.getPurchaseServices())) {
- lw.eq(PmDemand::getPurchaseServices, pmDemandReqVo.getPurchaseServices());
- }
- if (pmDemandReqVo.getProjectStatus() != null) {
- lw.eq(PmDemand::getProjectStatus, pmDemandReqVo.getProjectStatus());
- }
- if (pmDemandReqVo.getIsExcess() != null) {
- lw.eq(PmDemand::getIsExcess, pmDemandReqVo.getIsExcess());
- }
- if (!StringUtils.isBlank(pmDemandReqVo.getBeginDate())) {
- lw.apply("(plan_demand_sub_time >= '" + pmDemandReqVo.getBeginDate() +"' or plan_purchase_finish_time >= '" + pmDemandReqVo.getBeginDate() + "' or plan_deliver_time >= '" + pmDemandReqVo.getBeginDate() +"' )");
- }
- if (!StringUtils.isBlank(pmDemandReqVo.getEndDate())) {
- lw.apply("(plan_demand_sub_time <= '" + pmDemandReqVo.getEndDate() +"' or plan_purchase_finish_time <= '" + pmDemandReqVo.getEndDate() + "' or plan_deliver_time <= '" + pmDemandReqVo.getEndDate() +"' )");
- }
- IPage<PmDemand> pageRes = this.page(new Page<>(pmDemandReqVo.getPageNum(), pmDemandReqVo.getPageSize()), lw);
- IPage<PmDemandResVo> results = new Page<>(pageRes.getCurrent(), pageRes.getSize(), pageRes.getTotal());
- if(pageRes.getRecords() != null && pageRes.getRecords().size() > 0){
- List<PmDemandResVo> pmDemandResponseVoList = new ArrayList<>();
- for(PmDemand pmDemand1 : pageRes.getRecords()){
- PmDemandResVo vo = new PmDemandResVo();
- BeanUtils.copyProperties(pmDemand1,vo);
- if(vo.getPurchaseDeptId() != null){
- Map<String, Object> deptMap = deptService.selectDeptById(vo.getPurchaseDeptId());
- if(deptMap!= null){
- SysDeptResponseVo sysDeptResponseVo = (SysDeptResponseVo)deptMap.get("sysDept");
- if(sysDeptResponseVo != null){
- vo.setPurchaseDeptName(sysDeptResponseVo.getDeptName());
- }
- }
- }
- String purchaseServicesName = dictDataService.selectDictLabel("purchase_services",vo.getPurchaseServices());
- if(StringUtils.isNotEmpty(purchaseServicesName)){
- vo.setPurchaseServicesName(purchaseServicesName);
- }
- //项目类型
- for (ProjectTypes value : ProjectTypes.values()) {
- if (vo.getProjectType() != null && vo.getProjectType().equals(value.getCode())) {
- vo.setProjectTypeName(value.getInfo());
- break;
- }
- }
- //是否为超限额计划
- for (IsExcess value : IsExcess.values()) {
- if (vo.getIsExcess() != null && vo.getIsExcess().equals(value.getCode())) {
- vo.setIsExcessName(value.getInfo());
- break;
- }
- }
- //采购方式
- for (PlanPurchaseMode value : PlanPurchaseMode.values()) {
- if (vo.getPurchaseMode() != null && vo.getPurchaseMode().equals(value.getCode())) {
- vo.setPurchaseModeName(value.getInfo());
- break;
- }
- }
- //项目属性
- for (ProjectAttribute value : ProjectAttribute.values()) {
- if (vo.getProjectAttr() != null && vo.getProjectAttr().equals(value.getCode())) {
- vo.setProjectAttrName(value.getInfo());
- break;
- }
- }
- //预警状态
- for (WarnStatus value : WarnStatus.values()) {
- if (vo.getWarnStatus() != null && vo.getWarnStatus().equals(value.getCode())) {
- vo.setWarnStatusName(value.getInfo());
- break;
- }
- }
- //项目状态
- for (PmProjectStatus value : PmProjectStatus.values()) {
- if (vo.getProjectStatus() != null && vo.getProjectStatus().equals(value.getCode())) {
- vo.setProjectStatusName(value.getInfo());
- break;
- }
- }
- pmDemandResponseVoList.add(vo);
- }
- results.setRecords(pmDemandResponseVoList);
- }
- return results;
- }
- /**
- * 新增采购需求
- *
- * @param pmDemand 采购需求
- * @return 结果
- */
- @Override
- public int insertPmDemand(PmDemand pmDemand) {
- pmDemand.setCreateTime(DateUtils.getNowDate());
- return pmDemandMapper.insertPmDemand(pmDemand);
- }
- /**
- * 修改采购需求
- *
- * @param pmDemand 采购需求
- * @return 结果
- */
- @Override
- public int updatePmDemand(PmDemand pmDemand) {
- pmDemand.setUpdateTime(DateUtils.getNowDate());
- return pmDemandMapper.updatePmDemand(pmDemand);
- }
- /**
- * 需求建档
- *
- * @param vo 采购需求
- * @return 结果
- */
- @Override
- 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);
- }
- private HashMap<String, String> getFileMap(Long redId,Integer type){
- HashMap<String, Object> map = new HashMap<>();
- map.put("red_id", redId);
- map.put("type", type);
- List<SysFileRef> fileRefs = sysFileRefService.listByMap(map);
- if (!ObjectUtils.isEmpty(fileRefs)) {
- HashMap<String, String> fileMap = new HashMap<>();
- for (SysFileRef ref : fileRefs) {
- SysFileInfo fileInfo = fileService.getById(ref.getFileId());
- fileMap.put(fileInfo.getFileUrl(), fileInfo.getFileName());
- }
- return fileMap;
- } else {
- return null;
- }
- }
- /**
- * 查看流程图
- *
- * @param demandId 采购需求主键
- * @return 采购需求
- */
- @Override
- public String viewFlowChart(Long demandId) {
- PmDemand pmDemand = pmDemandMapper.selectPmDemandByDemandId(demandId);
- String projectStatus = String.valueOf(pmDemand.getProjectStatus());
- String moduleName = null;
- //todo
- if (PmProjectStatus.DEMAND_WAIT_FILL.getCode().equals(projectStatus) || PmProjectStatus.DEMAND_AUDIT_RETURN.getCode().equals(projectStatus)) {
- moduleName = "需求填制";
- } else if(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode().equals(projectStatus)) {
- moduleName = "需求提交";
- } else if(PmProjectStatus.DEMAND_WAIT_AUDIT.getCode().equals(projectStatus)) {
- moduleName = "需求审核";
- } else if(PmProjectStatus.TASK_WAIT_RELEASE.getCode().equals(projectStatus)) {
- moduleName = "任务下达";
- } else if(PmProjectStatus.BID_INFO_WAIT_FILL.getCode().equals(projectStatus)) {
- moduleName = "中标情况填制";
- } else if(PmProjectStatus.CONTRACT_WAIT_FILL.getCode().equals(projectStatus)) {
- moduleName = "合同填制";
- } else if(PmProjectStatus.UNDER_CONSTRUCTION.getCode().equals(projectStatus)) {
- moduleName = "建设文档填制";
- } else if(PmProjectStatus.COMPLETION_CONSTRUCTION.getCode().equals(projectStatus)) {
- moduleName = "项目归档";
- }
- return moduleName;
- }
- public PmFlowChartResVo getModuleInfo(Long demandId,String moduleName){
- PmDemand pmDemand = pmDemandMapper.selectPmDemandByDemandId(demandId);
- String projectType = pmDemand.getProjectType();
- PmFlowChart pmFlowChartReq = new PmFlowChart();
- pmFlowChartReq.setModuleName(moduleName);
- List<PmFlowChart> pmFlowChartList = iPmFlowChartService.selectPmFlowChartList(pmFlowChartReq);
- if(pmFlowChartList == null || pmFlowChartList.size() ==0){
- return null;
- }
- PmFlowChartResVo vo = new PmFlowChartResVo();
- BeanUtils.copyProperties(pmFlowChartList.get(0), vo);
- if("需求填制".equals(moduleName)) {
- HashMap<String, String> fileMap = getFileMap(demandId,SysFileRefEnum.PM_DEMAND.getType());
- if(fileMap != null){
- vo.setFileMap(fileMap);
- }
- } else if("需求提交".equals(moduleName)) {
- if(ProjectTypes.EQUIPMENTTYPE.getCode().equals(projectType)){ //装备类
- PmDemandEquip pmDemandEquipReq = new PmDemandEquip();
- pmDemandEquipReq.setDemandId(demandId);
- List<PmDemandEquip> pmDemandEquipList = iPmDemandEquipService.selectPmDemandEquipList(pmDemandEquipReq);
- if(pmDemandEquipList != null && pmDemandEquipList.size() > 0){
- HashMap<String, String> fileMap = getFileMap(pmDemandEquipList.get(0).getDemandEquipId(),SysFileRefEnum.PM_DEMAND_EQUIP.getType());
- if(fileMap != null){
- vo.setFileMap(fileMap);
- }
- }
- } else if(ProjectTypes.MATERIALTYPE.getCode().equals(projectType)) { //物资类
- PmDemandMaterials pmDemandMaterialsReq = new PmDemandMaterials();
- pmDemandMaterialsReq.setDemandId(demandId);
- List<PmDemandMaterials> pmDemandMaterialsList = iPmDemandMaterialsService.selectPmDemandMaterialsList(pmDemandMaterialsReq);
- if(pmDemandMaterialsList != null && pmDemandMaterialsList.size() > 0){
- HashMap<String, String> fileMap = getFileMap(pmDemandMaterialsList.get(0).getDemandMaterialsId(),SysFileRefEnum.PM_DEMAND_MATERIALS.getType());
- if(fileMap != null){
- vo.setFileMap(fileMap);
- }
- }
- } else if(ProjectTypes.SERVICESTYPE.getCode().equals(projectType)) { //服务类
- PmDemandServe pmDemandServeReq = new PmDemandServe();
- pmDemandServeReq.setDemandId(demandId);
- List<PmDemandServe> pmDemandServeList = iPmDemandServeService.selectPmDemandServeList(pmDemandServeReq);
- if(pmDemandServeList != null && pmDemandServeList.size() > 0){
- HashMap<String, String> fileMap = getFileMap(pmDemandServeList.get(0).getDemandServeId(),SysFileRefEnum.PM_DEMAND_SERVE.getType());
- if(fileMap != null){
- vo.setFileMap(fileMap);
- }
- }
- } else if(ProjectTypes.PLANTOEXAMINETYPE.getCode().equals(projectType)) { //工程类
- PmDemandEngineering pmDemandEngineeringReq = new PmDemandEngineering();
- pmDemandEngineeringReq.setDemandId(demandId);
- List<PmDemandEngineering> pmDemandEngineeringList = iPmDemandEngineeringService.selectPmDemandEngineeringList(pmDemandEngineeringReq);
- if(pmDemandEngineeringList != null && pmDemandEngineeringList.size() > 0){
- HashMap<String, String> fileMap = getFileMap(pmDemandEngineeringList.get(0).getDemandEngineeringId(),SysFileRefEnum.PM_DEMAND_ENGINEERING.getType());
- if(fileMap != null){
- vo.setFileMap(fileMap);
- }
- }
- }
- } else if("需求审核".equals(moduleName)) {
- HashMap<String, String> fileMap = getFileMap(demandId,SysFileRefEnum.PM_DEMAND_EXAMINE.getType());
- if(fileMap != null){
- vo.setFileMap(fileMap);
- }
- } else if("任务下达".equals(moduleName)) {
- //todo
- }
- return vo;
- }
- /**
- * 提交采购需求
- *
- * @param pmDemandReqVo
- * @return 结果
- */
- @Override
- public int commit(PmDemandReqVo pmDemandReqVo) {
- PmDemand pmDemand = new PmDemand();
- 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);
- }
- /**
- * 审核采购需求通过
- *
- * @param pmDemandReqVo
- * @return 结果
- */
- @Override
- public int reviewTo(PmDemandReqVo pmDemandReqVo) {
- PmDemand pmDemand = new PmDemand();
- pmDemand.setDemandId(pmDemandReqVo.getDemandId());
- pmDemand.setProjectStatus(Long.parseLong(PmProjectStatus.TASK_WAIT_RELEASE.getCode()));
- List<SysFileRef> sysFileRefs = pmDemandReqVo.getSysFileRefs();
- if (!ObjectUtils.isEmpty(sysFileRefs)) {
- for (SysFileRef ref : sysFileRefs) {
- ref.setRedId(pmDemandReqVo.getDemandId());
- ref.setType(SysFileRefEnum.PM_DEMAND_EXAMINE.getType());
- ref.setCreated(pmDemandReqVo.getUpdateBy());
- ref.setCreateTime(new Date());
- 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);
- }
- /**
- * 审核采购需求退回
- *
- * @param pmDemandReqVo
- * @return 结果
- */
- @Override
- public int reviewReturn(PmDemandReqVo pmDemandReqVo) {
- PmDemand pmDemand = new PmDemand();
- pmDemand.setDemandId(pmDemandReqVo.getDemandId());
- pmDemand.setProjectStatus(Long.parseLong(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode()));
- pmDemand.setAdjustReason(pmDemandReqVo.getRefuseReason());
- pmDemand.setUpdateBy(pmDemandReqVo.getUpdateBy());
- pmDemand.setUpdateTime(DateUtils.getNowDate());
- pmDemand.setAuditTime(DateUtils.getNowDate());
- return pmDemandMapper.updatePmDemand(pmDemand);
- }
- }
|