package com.ozs.pm.service.impl; import java.util.*; import com.ozs.common.enums.ProjectTypes; import com.ozs.common.utils.DateUtils; import com.ozs.common.utils.bean.BeanUtils; import com.ozs.pm.doman.*; import com.ozs.pm.doman.vo.requestVo.PmRequestVo; import com.ozs.pm.doman.vo.responseVo.*; import com.ozs.pm.mapper.PmDemandMapper; import com.ozs.pm.service.*; import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo; import com.ozs.system.service.ISysDeptService; import com.ozs.system.service.ISysDictTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * 采购需求Service业务层处理 * * @author ruoyi * @date 2023-01-16 */ @Service public class PmDemandServiceImpl implements IPmDemandService { @Autowired private PmDemandMapper pmDemandMapper; @Autowired private IPmDemandServeService iPmDemandServeService; @Autowired private IPmDemandMaterialsService iPmDemandMaterialsService; @Autowired private IPmDemandEquipService iPmDemandEquipService; @Autowired private IPmDemandEngineeringService iPmDemandEngineeringService; @Autowired private ISysDeptService deptService; @Autowired private ISysDictTypeService dictTypeService; /** * 查询采购需求 * * @param demandId 采购需求主键 * @return 采购需求 */ @Override public PmDemandResponseVo selectPmDemandByDemandId(Long demandId) { PmDemand pmDemand = pmDemandMapper.selectPmDemandByDemandId(demandId); if(pmDemand != null){ PmDemandResponseVo vo = new PmDemandResponseVo(); BeanUtils.copyProperties(pmDemand, vo); SysDeptResponseVo sysDeptResponseVo = (SysDeptResponseVo) deptService.selectDeptById(vo.getPurchaseDeptId()).get("sysDept"); if(sysDeptResponseVo != null){ vo.setPurchaseDeptName(sysDeptResponseVo.getDeptName()); } //项目类型 for (ProjectTypes value : ProjectTypes.values()) { if (vo.getProjectType() != null && vo.getProjectType().equals(value.getCode())) { vo.setProjectTypeName(value.getInfo()); break; } } if(ProjectTypes.EQUIPMENTTYPE.getCode().equals(vo.getProjectType())){//装备类 PmDemandEquip obj = new PmDemandEquip(); obj.setDemandId(demandId); List list = iPmDemandEquipService.selectPmDemandEquipList(obj); if(list !=null && list.size() > 0){ PmDemandEquipResponseVo responseVo = new PmDemandEquipResponseVo(); BeanUtils.copyProperties(list.get(0),responseVo); vo.setPmDemandEquipResponseVo(responseVo); } } else if(ProjectTypes.MATERIALTYPE.getCode().equals(vo.getProjectType())){ //物资类 PmDemandMaterials obj = new PmDemandMaterials(); obj.setDemandId(demandId); List list = iPmDemandMaterialsService.selectPmDemandMaterialsList(obj); if(list !=null && list.size() > 0){ PmDemandMaterialsResponseVo responseVo = new PmDemandMaterialsResponseVo(); BeanUtils.copyProperties(list.get(0),responseVo); vo.setPmDemandMaterialsResponseVo(responseVo); } } else if(ProjectTypes.SERVICESTYPE.getCode().equals(vo.getProjectType())){//服务类 PmDemandServe obj = new PmDemandServe(); obj.setDemandId(demandId); List list = iPmDemandServeService.selectPmDemandServeList(obj); if(list !=null && list.size() > 0){ PmDemandServeResponseVo responseVo = new PmDemandServeResponseVo(); BeanUtils.copyProperties(list.get(0),responseVo); vo.setPmDemandServeResponseVo(responseVo); } } else if(ProjectTypes.PLANTOEXAMINETYPE.getCode().equals(vo.getProjectType())){//工程类 PmDemandEngineering obj = new PmDemandEngineering(); obj.setDemandId(demandId); List list = iPmDemandEngineeringService.selectPmDemandEngineeringList(obj); if(list !=null && list.size() > 0){ PmDemandEngineeringResponseVo responseVo = new PmDemandEngineeringResponseVo(); BeanUtils.copyProperties(list.get(0),responseVo); vo.setPmDemandEngineeringResponseVo(responseVo); } } return vo; } else { return null; } } /** * 查询采购需求列表 * * @param requestVo * @return 采购需求 */ @Override public List selectPmDemandList(PmRequestVo requestVo) { PmDemand pmDemand = new PmDemand(); pmDemand.setProjectName(requestVo.getProjectName()); pmDemand.setPurchaseServices(requestVo.getPurchaseServiceStation()); pmDemand.setProjectStatus(requestVo.getProjectStatus()); Map params = new HashMap<>(); params.put("beginDate",requestVo.getBeginDate()); params.put("endDate",requestVo.getEndDate()); pmDemand.setParams(params); List pmDemandList = pmDemandMapper.selectPmDemandList(pmDemand); List pmDemandResponseVoList = new ArrayList<>(); if(pmDemandList != null && !pmDemandList.isEmpty()){ for(PmDemand pmDemand1 : pmDemandList){ PmDemandResponseVo vo = new PmDemandResponseVo(); BeanUtils.copyBeanProp(pmDemand1,vo); pmDemandResponseVoList.add(vo); } } return pmDemandResponseVoList; } /** * 新增采购需求 * * @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); } }