package com.ozs.base.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ozs.base.domain.BaseExpert; import com.ozs.base.domain.BaseUnitInformation; import com.ozs.base.domain.vo.BaseExpertVo; import com.ozs.base.mapper.BaseExpertMapper; import com.ozs.base.service.BaseExpertService; import com.ozs.common.core.domain.AjaxResult; import com.ozs.common.enums.*; import com.ozs.common.utils.StringUtils; import com.ozs.common.utils.bean.BeanUtils; import com.ozs.plan.doman.PlanQuarter; import com.ozs.plan.doman.ProvisionalPlan; import com.ozs.pm.doman.PmDemand; import com.ozs.pm.doman.PmDemandExpertRef; import com.ozs.pm.doman.vo.responseVo.PmDemandResVo; import com.ozs.pm.service.IPmDemandService; import com.ozs.pm.service.PmDemandExpertRefService; import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo; import com.ozs.system.service.ISysDeptService; import com.ozs.system.service.ISysDictDataService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @Service public class BaseExpertServiceImpl extends ServiceImpl implements BaseExpertService { @Autowired private BaseExpertMapper baseExpertMapper; @Autowired private PmDemandExpertRefService pmDemandExpertRefService; @Autowired private IPmDemandService pmDemandService; @Autowired private ISysDeptService deptService; @Autowired private ISysDictDataService dictDataService; @Override public int insertExpert(BaseExpertVo baseExpertVo) { // base_unit_information 单位信息表 if (StringUtils.isNotNull(baseExpertVo.getUnitInformation())) { List baseUnitInformationList = baseExpertMapper.selectByUnitInformation(baseExpertVo.getUnitInformation()); if (baseUnitInformationList.size() <= 0) { BaseUnitInformation baseUnitInformation = new BaseUnitInformation(); baseUnitInformation.setUnitName(baseExpertVo.getUnitInformation()); baseUnitInformation.setCreated(baseExpertVo.getExpertName()); baseUnitInformation.setCreateTime(new Date()); Integer i = baseExpertMapper.insertBaseUnitInformation(baseUnitInformation); } } // 区域list转字符串 if (StringUtils.isNotNull(baseExpertVo.getLocalAreaList())) { // String stringFromList = String.join(",", baseExpertVo.getLocalAreaList()); baseExpertVo.setLocalArea(baseExpertVo.getLocalAreaList().get(baseExpertVo.getLocalAreaList().size() - 1)); } return baseExpertMapper.insertExpert(baseExpertVo); } @Override public int updateSupplierType(BaseExpert baseExpert) { LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); //eq是指你查询的条件,set是指你修改的值 lambdaUpdateWrapper .eq(BaseExpert::getId, baseExpert.getId()) .set(BaseExpert::getStatus, baseExpert.getStatus()); return baseExpertMapper.update(null, lambdaUpdateWrapper); } @Override public AjaxResult selectReviewProject(BaseExpertVo baseExpertVo) { // 通过专家ID查询 与专家库关联的采购执行管理ID List demandIdList = pmDemandExpertRefService.selectByExpertId(baseExpertVo.getId()); if (ObjectUtils.isEmpty(demandIdList)) { return AjaxResult.success(new PageInfo<>(demandIdList)); } List pmDemandList = pmDemandService.selectByDemandIdList(demandIdList); List pmDemandResponseVoList = changTo(pmDemandList); PageHelper.startPage(baseExpertVo.getPageNum().intValue(), baseExpertVo.getPageSize().intValue()); PageInfo pageInfo = new PageInfo<>(pmDemandResponseVoList); return AjaxResult.success(pageInfo); } @Override public AjaxResult selectExtractionExpert(BaseExpertVo baseExpertVo) { // 查询抽取过专家的项目列表 List pmDemandList = pmDemandService.selectExtractionExpert(baseExpertVo); List pmDemandResponseVoList = changTo(pmDemandList); // 遍历项目 查询专家姓名 for (PmDemandResVo pmDemandResVo : pmDemandResponseVoList) { Long demandId = pmDemandResVo.getDemandId(); List expertNameList = baseExpertMapper.getExpertNameList(pmDemandResVo.getDemandId()); String expertNameStr = expertNameList.stream().collect(Collectors.joining(",", "{", "}")); pmDemandResVo.setExpertNameStr(expertNameStr); } PageHelper.startPage(baseExpertVo.getPageNum().intValue(), baseExpertVo.getPageSize().intValue()); PageInfo pageInfo = new PageInfo<>(pmDemandResponseVoList); return AjaxResult.success(pageInfo); } @Override public List getBaseUnitInformationList(){ List baseUnitInformationList = baseExpertMapper.selectByUnitInformation(null); return baseUnitInformationList; } private List changTo(List pmDemandList) { List pmDemandResponseVoList = new ArrayList<>(); if (pmDemandList != null && pmDemandList.size() > 0) { for (PmDemand pmDemand1 : pmDemandList) { PmDemandResVo vo = new PmDemandResVo(); BeanUtils.copyProperties(pmDemand1, vo); if (vo.getPurchaseDeptId() != null) { Map 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); } } return pmDemandResponseVoList; } }