package com.ozs.plan.service.impl; 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.github.pagehelper.PageInfo; import com.ozs.common.constant.Constants; 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.entity.SysRole; 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; import com.ozs.common.exception.ServiceException; import com.ozs.common.utils.PageUtils; import com.ozs.common.utils.StringUtils; import com.ozs.common.utils.bean.BeanUtils; import com.ozs.plan.doman.PlanYears; import com.ozs.plan.doman.ProvisionalPlan; import com.ozs.plan.doman.vo.requestVo.ProvisionalPlanVo; import com.ozs.plan.mapper.PlanYearsMapper; import com.ozs.plan.mapper.ProvisionalPlanMapper; import com.ozs.plan.service.ProvisionalPlanService; 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; import com.ozs.system.mapper.SysDeptMapper; import com.ozs.system.mapper.SysFileRefMapper; import com.ozs.system.service.ISysDeptService; import com.ozs.system.service.ISysDictTypeService; import com.ozs.system.service.SysFileService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @Service public class ProvisionalPlanServiceImpl extends ServiceImpl implements ProvisionalPlanService { @Autowired private ProvisionalPlanMapper provisionalPlanMapper; @Autowired private ISysDictTypeService dictTypeService; @Autowired private SysDeptMapper deptMapper; @Autowired private ISysDeptService deptService; @Autowired private PlanYearsMapper planYearsMapper; @Autowired private SysFileRefMapper sysFileRefMapper; @Autowired private SysFileService fileService; @Autowired private PmDemandMapper pmDemandMapper; @Override public int deleteProvisionalPlanById(Integer planPracticalId) { return provisionalPlanMapper.deleteProvisionalPlanById(planPracticalId); } @Override public int updateProvisionalPlanById(ProvisionalPlanVo provisionalPlan) { return provisionalPlanMapper.updateProvisionalPlanById(provisionalPlan); } @Override public String importProvisionalPlan(List provisionalPlans, boolean updateSupport, LoginUser loginUser) { // 字典项 HashMap> planEnums = dictTypeService.getAboutEnums(); HashMap projectTypesMap = planEnums.get("projectTypes"); HashMap planPurchaseModesMap = planEnums.get("planPurchaseModes"); HashMap projectAttributes = planEnums.get("projectAttributes"); HashMap purchaseServices = planEnums.get("purchaseServices"); int successNum = 0; int failureNum = 0; StringBuilder successMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder(); for (ProvisionalPlan ofProvisionalPlan : provisionalPlans) { try { //验证项目名称是否重复导入 List plan = provisionalPlanMapper.selectProjectName(ofProvisionalPlan.getProjectName()); //将录入信息中的值更改为要保存的数据 if (plan.size() == 0) { //采购单位 SysDept info = deptMapper.checkDeptNameOnlyOne(ofProvisionalPlan.getPurchaseDeptName()); if (StringUtils.isNotNull(info)) { ofProvisionalPlan.setPurchaseDeptId(String.valueOf(info.getDeptId())); } ofProvisionalPlan.setProjectType(projectTypesMap.get(ofProvisionalPlan.getProjectType())); ofProvisionalPlan.setProjectStatus(ProjectStatus.PLANWAITCOMMIT.getCode()); ofProvisionalPlan.setPurchaseMode(planPurchaseModesMap.get(ofProvisionalPlan.getPurchaseMode())); //项目属性是多选字段 StringBuilder builder = new StringBuilder(); if (ofProvisionalPlan.getProjectAttr().contains(",")) { String[] split = ofProvisionalPlan.getProjectAttr().split(","); for (String s : split) { builder.append(projectAttributes.get(s) + ","); } } else { builder.append(projectAttributes.get(ofProvisionalPlan.getProjectAttr())); } ofProvisionalPlan.setProjectAttr(builder.toString()); ofProvisionalPlan.setPurchaseServices(purchaseServices.get(ofProvisionalPlan.getPurchaseServices())); ofProvisionalPlan.setIsExcess(isExcessOrNo(ofProvisionalPlan.getProjectType(), ofProvisionalPlan.getEvaluation())); ofProvisionalPlan.setCreated(String.valueOf(loginUser.getUserId())); ofProvisionalPlan.setCreateTime(new Date()); ofProvisionalPlan.setPlanType("1"); provisionalPlanMapper.insert(ofProvisionalPlan); successNum++; successMsg.append("*" + successNum + "、项目 " + ofProvisionalPlan.getProjectName() + " 导入成功!"); } else { failureNum++; failureMsg.append("*" + successNum + "、项目 " + ofProvisionalPlan.getProjectName() + " 已存在"); } } catch (Exception exc) { failureNum++; String msg = "*" + successNum + "、项目 " + ofProvisionalPlan.getProjectName() + " 导入失败"; failureMsg.append(msg + exc.getMessage()); log.error(msg, exc); } } if (failureNum > 0) { failureMsg.insert(0, "导入失败!共 " + failureNum + " 条数据格式不正确:"); throw new ServiceException(failureMsg.toString()); } else { successMsg.insert(0, "导入成功!共 " + successNum + " 条。"); } return successMsg.toString(); } @Override public List selectProvisionalPlanExport(ProvisionalPlanVo vo, LoginUser loginUser) { List list = new ArrayList<>(); List provisionalPlanList = new ArrayList<>(); try { int num = 1; int size = 200; while (size == 200) { LambdaQueryWrapper lw = new LambdaQueryWrapper(); lw.eq(ProvisionalPlan::getPlanType, "1"); if (!ObjectUtils.isEmpty(vo.getProjectName())) { lw.like(ProvisionalPlan::getProjectName, vo.getProjectName()); } if (!ObjectUtils.isEmpty(vo.getPurchaseServices())) { lw.eq(ProvisionalPlan::getPurchaseServices, vo.getPurchaseServices()); } if (!ObjectUtils.isEmpty(vo.getIsExcess())) { lw.eq(ProvisionalPlan::getIsExcess, vo.getIsExcess()); } if (!ObjectUtils.isEmpty(vo.getProjectStatus())) { lw.eq(ProvisionalPlan::getProjectStatus, vo.getProjectStatus()); } if (!ObjectUtils.isEmpty(vo.getStartTime())) { lw.ge(ProvisionalPlan::getPlanDemandSubTime, vo.getStartTime()); } if (!ObjectUtils.isEmpty(vo.getEndTime())) { lw.le(ProvisionalPlan::getPlanDemandSubTime, vo.getEndTime()); } // 添加数据权限 List roleKeys = loginUser.getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList()); if (roleKeys.contains(Constants.DEMAND_UNIT)) { // 需求单位 /*(purchase_dept_id = 当前用户deptID) */ lw.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId()); } else if (roleKeys.contains(Constants.PURCHASING_MANAGEMENT) || roleKeys.contains(Constants.PURCHASE_SERVICES)) { // 采购管理部门 或 采购办 SysDept sysDept = new SysDept(); sysDept.setParentId(loginUser.getDeptId()); sysDept.setStatus("0"); List childDeptIds = deptService.selectDeptList(sysDept) .stream() .map(SysDept::getDeptId) .collect(Collectors.toList()); if (ObjectUtils.isEmpty(childDeptIds)) { lw.and((wrapper) -> { wrapper.eq(ProvisionalPlan::getIsExcess, 0); wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId()); }); } else { lw.and((wrapper) -> { wrapper.eq(ProvisionalPlan::getIsExcess, 0); wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId()); }) .or((wrapper) -> { wrapper.eq(ProvisionalPlan::getIsExcess, 1); wrapper.in(ProvisionalPlan::getPurchaseDeptId, childDeptIds); }); } } Page page = provisionalPlanMapper.selectPage(new Page(num, size, false), lw); list.addAll(page.getRecords()); size = page.getRecords().size(); num++; } provisionalPlanList = changeTo(list); } catch (Exception e) { e.printStackTrace(); } return provisionalPlanList; } @Override public int commitProvisionalPlan(ProvisionalPlanVo provisionalPlanVo) { return provisionalPlanMapper.commitProvisionalPlan(provisionalPlanVo.getPlanPracticalId()); } @Override public AjaxResult seletById(Integer planPracticalId) { ProvisionalPlan provisionalPlan = provisionalPlanMapper.seletById(planPracticalId); if (StringUtils.isNull(provisionalPlan)) { return AjaxResult.error("数据查询失败"); } // 转换字段中文 ProvisionalPlan provisionalPlanC = changeToProvisionalPlan(provisionalPlan); HashMap map = new HashMap<>(); map.put("red_id", provisionalPlanC.getPlanPracticalId()); map.put("type", SysFileRefEnum.PLAN_TEMPORARY.getType()); List fileRefs = sysFileRefMapper.selectByMap(map); List fileInfos = new ArrayList<>(); ProvisionalPlanVo provisionalPlanVo = new ProvisionalPlanVo(); BeanUtils.copyProperties(provisionalPlanC, provisionalPlanVo); if (!ObjectUtils.isEmpty(fileRefs)) { for (SysFileRef ref : fileRefs) { SysFileInfo fileInfo = fileService.getById(ref.getFileId()); fileInfos.add(fileInfo); } provisionalPlanVo.setFileInfos(fileInfos); } return AjaxResult.success(provisionalPlanVo); } @Override public AjaxResult selectProvisionalPlan(ProvisionalPlanVo vo, HttpServletRequest request, LoginUser loginUser) { List provisionalPlanList = new ArrayList<>(); try { LambdaQueryWrapper lw = new LambdaQueryWrapper<>(); lw.eq(ProvisionalPlan::getDelFlay, DataIsDelete.DataNOTDelete.getCode()); lw.eq(ProvisionalPlan::getPlanType, "1"); if (!ObjectUtils.isEmpty(vo.getProjectName())) { lw.like(ProvisionalPlan::getProjectName, vo.getProjectName()); } if (!ObjectUtils.isEmpty(vo.getPurchaseServices())) { lw.eq(ProvisionalPlan::getPurchaseServices, vo.getPurchaseServices()); } if (!ObjectUtils.isEmpty(vo.getIsExcess())) { lw.eq(ProvisionalPlan::getIsExcess, vo.getIsExcess()); } if (!ObjectUtils.isEmpty(vo.getProjectStatus())) { lw.eq(ProvisionalPlan::getProjectStatus, vo.getProjectStatus()); } if (!ObjectUtils.isEmpty(vo.getStartTime())) { lw.ge(ProvisionalPlan::getPlanDemandSubTime, vo.getStartTime()); } if (!ObjectUtils.isEmpty(vo.getEndTime())) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormatT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"); Date parse = dateFormatT.parse(dateFormat.format(vo.getEndTime()) + " 23:59:59:999"); lw.le(ProvisionalPlan::getPlanDemandSubTime, parse); } // 添加数据权限 List roleKeys = loginUser.getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList()); if (roleKeys.contains(Constants.DEMAND_UNIT)) { // 需求单位 /*(purchase_dept_id = 当前用户deptID) */ lw.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId()); } else if (roleKeys.contains(Constants.PURCHASING_MANAGEMENT) || roleKeys.contains(Constants.PURCHASE_SERVICES)) { // 采购管理部门 或 采购办 SysDept sysDept = new SysDept(); sysDept.setParentId(loginUser.getDeptId()); sysDept.setStatus("0"); List childDeptIds = deptService.selectDeptList(sysDept) .stream() .map(SysDept::getDeptId) .collect(Collectors.toList()); if (ObjectUtils.isEmpty(childDeptIds)) { lw.and((wrapper) -> { wrapper.eq(ProvisionalPlan::getIsExcess, 0); wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId()); }); } else { lw.and((wrapper) -> { wrapper.eq(ProvisionalPlan::getIsExcess, 0); wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId()); }) .or((wrapper) -> { wrapper.eq(ProvisionalPlan::getIsExcess, 1); wrapper.in(ProvisionalPlan::getPurchaseDeptId, childDeptIds); }); } } lw.orderBy(true, false, ProvisionalPlan::getCreateTime); List list = provisionalPlanMapper.selectList(lw); provisionalPlanList = changeTo(list); } catch (Exception e) { e.printStackTrace(); } Page pages = PageUtils.getPages(vo.getPageNum().intValue(), vo.getPageSize().intValue(), provisionalPlanList); PageInfo provisionalPlanPageInfo = new PageInfo<>(); if (!ObjectUtils.isEmpty(pages) && pages.getRecords().size() > 0) { provisionalPlanPageInfo.setList(pages.getRecords()); provisionalPlanPageInfo.setSize(Math.toIntExact(pages.getSize())); provisionalPlanPageInfo.setPageNum(Math.toIntExact(pages.getCurrent())); provisionalPlanPageInfo.setTotal(pages.getTotal()); provisionalPlanPageInfo.setPages(Integer.parseInt(pages.getPages() + "")); } return AjaxResult.success(provisionalPlanPageInfo); } @Override public AjaxResult selectProvisionalPlanAudit(ProvisionalPlanVo vo, HttpServletRequest request, LoginUser loginUser) { List provisionalPlanList = new ArrayList<>(); try { LambdaQueryWrapper lw = new LambdaQueryWrapper<>(); lw.eq(ProvisionalPlan::getDelFlay, DataIsDelete.DataNOTDelete.getCode()); lw.eq(ProvisionalPlan::getPlanType, "1"); if (!ObjectUtils.isEmpty(vo.getProjectName())) { lw.like(ProvisionalPlan::getProjectName, vo.getProjectName()); } if (!ObjectUtils.isEmpty(vo.getPurchaseServices())) { lw.eq(ProvisionalPlan::getPurchaseServices, vo.getPurchaseServices()); } if (!ObjectUtils.isEmpty(vo.getIsExcess())) { lw.eq(ProvisionalPlan::getIsExcess, vo.getIsExcess()); } if (!ObjectUtils.isEmpty(vo.getProjectStatus())) { lw.eq(ProvisionalPlan::getProjectStatus, vo.getProjectStatus()); } else { lw.apply(" project_status IN (1,3)", ""); } if (!ObjectUtils.isEmpty(vo.getStartTime())) { lw.ge(ProvisionalPlan::getPlanDemandSubTime, vo.getStartTime()); } if (!ObjectUtils.isEmpty(vo.getEndTime())) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormatT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"); Date parse = dateFormatT.parse(dateFormat.format(vo.getEndTime()) + " 23:59:59:999"); lw.le(ProvisionalPlan::getPlanDemandSubTime, parse); } // 添加数据权限 List roleKeys = loginUser.getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList()); if (roleKeys.contains(Constants.DEMAND_UNIT)) { // 需求单位 /*(purchase_dept_id = 当前用户deptID) */ lw.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId()); } else if (roleKeys.contains(Constants.PURCHASING_MANAGEMENT) || roleKeys.contains(Constants.PURCHASE_SERVICES)) { // 采购管理部门 或 采购办 SysDept sysDept = new SysDept(); sysDept.setParentId(loginUser.getDeptId()); sysDept.setStatus("0"); List childDeptIds = deptService.selectDeptList(sysDept) .stream() .map(SysDept::getDeptId) .collect(Collectors.toList()); if (ObjectUtils.isEmpty(childDeptIds)) { lw.and((wrapper) -> { wrapper.eq(ProvisionalPlan::getIsExcess, 0); wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId()); }); } else { lw.and((wrapper) -> { wrapper.eq(ProvisionalPlan::getIsExcess, 0); wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId()); }) .or((wrapper) -> { wrapper.eq(ProvisionalPlan::getIsExcess, 1); wrapper.in(ProvisionalPlan::getPurchaseDeptId, childDeptIds); }); } } lw.orderBy(true, false, ProvisionalPlan::getCreateTime); List list = provisionalPlanMapper.selectList(lw); provisionalPlanList = changeTo(list); } catch (Exception e) { e.printStackTrace(); } Page pages = PageUtils.getPages(vo.getPageNum().intValue(), vo.getPageSize().intValue(), provisionalPlanList); PageInfo provisionalPlanPageInfo = new PageInfo<>(); if (!ObjectUtils.isEmpty(pages) && pages.getRecords().size() > 0) { provisionalPlanPageInfo.setList(pages.getRecords()); provisionalPlanPageInfo.setSize(Math.toIntExact(pages.getSize())); provisionalPlanPageInfo.setPageNum(Math.toIntExact(pages.getCurrent())); provisionalPlanPageInfo.setTotal(pages.getTotal()); provisionalPlanPageInfo.setPages(Integer.parseInt(pages.getPages() + "")); } return AjaxResult.success(provisionalPlanPageInfo); } @Override public AjaxResult auditPass(ProvisionalPlanVo provisionalPlanVo) { ProvisionalPlan byId = provisionalPlanMapper.seletById(provisionalPlanVo.getPlanPracticalId()); if (ObjectUtils.isEmpty(byId.getPlanYearId())) { PlanYears ofYears = new PlanYears(); BeanUtils.copyProperties(byId, ofYears); ofYears.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode()); planYearsMapper.insertPlanYears(ofYears); byId.setPlanYearId(ofYears.getPlanYearId().intValue()); } PmDemand demand = new PmDemand(); BeanUtils.copyProperties(byId, demand); demand.setPlanId(Long.valueOf(byId.getPlanPracticalId())); demand.setEvaluation(byId.getEvaluation().doubleValue()); //同步到项目管理状态为需求待填制 demand.setProjectStatus(PmProjectStatus.DEMAND_WAIT_FILL.getCode()); demand.setCreateTime(new Date()); pmDemandMapper.insert(demand); //计划附件也进行同步---查询年度计划附件后复制一份改为项目需求附件 LambdaQueryWrapper sysFileRefLp = new LambdaQueryWrapper<>(); sysFileRefLp.eq(SysFileRef::getType, SysFileRefEnum.PLAN_YEAR.getType()); sysFileRefLp.eq(SysFileRef::getRedId, byId.getPlanYearId()); List 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); } } byId.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode()); return review(provisionalPlanVo, byId); } @Override public AjaxResult auditNoPass(ProvisionalPlanVo provisionalPlanVo) { ProvisionalPlan provisionalPlan = new ProvisionalPlan(); BeanUtils.copyProperties(provisionalPlanVo, provisionalPlan); provisionalPlan.setProjectStatus(ProjectStatus.PLANTOBACK.getCode()); return review(provisionalPlanVo, provisionalPlan); } private AjaxResult review(ProvisionalPlanVo vo, ProvisionalPlan provisionalPlan) { List sysFileRefs = vo.getSysFileRefs(); if (!ObjectUtils.isEmpty(sysFileRefs)) { for (SysFileRef ref : sysFileRefs) { ref.setRedId(vo.getPlanPracticalId().longValue()); ref.setType(SysFileRefEnum.PLAN_TEMPORARY.getType()); ref.setCreated(vo.getUpdated()); ref.setCreateTime(new Date()); ref.setUpdated(vo.getUpdated()); ref.setUpdateTime(new Date()); sysFileRefMapper.insert(ref); } } int review = provisionalPlanMapper.review(provisionalPlan); if (review != 1) { return AjaxResult.error("项目状态数据异常"); } return AjaxResult.success(); } //判断是否为超额计划 public String isExcessOrNo(String projectType, BigDecimal evaluation) { BigDecimal threshold = new BigDecimal(0); //获取各个项目类型设定的概算金额阈值 List data = dictTypeService.selectDictDataByType("sys_over_limit_threshold"); HashMap thresholdMap = new LinkedHashMap<>(); //各个类型的概算金额阈值 for (SysDictData dictData : data) { // 类型----阈值 thresholdMap.put(dictData.getDictLabel(), dictData.getDictValue()); } //项目类型 for (ProjectTypes value : ProjectTypes.values()) { if (projectType.equals(value.getCode())) { threshold = BigDecimal.valueOf(Long.parseLong(thresholdMap.get(value.getInfo()))); } break; } if (evaluation.compareTo(threshold) == 1) { //是超额计划 return ("1"); } else { return ("0"); } } // 字典项负值 public ProvisionalPlan changeToProvisionalPlan(ProvisionalPlan provisionalPlan) { HashMap> planEnums = dictTypeService.getAboutEnums(); HashMap projectTypesMap = planEnums.get("projectTypes"); HashMap planPurchaseModesMap = planEnums.get("planPurchaseModes"); HashMap projectAttributes = planEnums.get("projectAttributes"); HashMap purchaseServices = planEnums.get("purchaseServices"); if (provisionalPlan.getPurchaseDeptId() != null) { SysDeptResponseVo sysDeptResponseVo = (SysDeptResponseVo) deptService.selectDeptById(Long.valueOf(provisionalPlan.getPurchaseDeptId())).get("sysDept"); provisionalPlan.setPurchaseDeptName(sysDeptResponseVo.getDeptName()); } for (Map.Entry entry : projectTypesMap.entrySet()) { if (provisionalPlan.getProjectType() != null && provisionalPlan.getProjectType().equals(entry.getValue())) { provisionalPlan.setProjectTypeStr(entry.getKey()); break; } } for (Map.Entry entry : planPurchaseModesMap.entrySet()) { if (provisionalPlan.getPurchaseMode() != null && provisionalPlan.getPurchaseMode().equals(entry.getValue())) { provisionalPlan.setPurchaseModeStr(entry.getKey()); break; } } //项目属性是拼接的 if (provisionalPlan.getProjectAttr().length() > 1) { StringBuilder builder = new StringBuilder(); String[] split = provisionalPlan.getProjectAttr().split(","); for (String s : split) { for (Map.Entry entry : projectAttributes.entrySet()) { if (s.equals(entry.getValue())) { builder.append(entry.getKey() + ","); break; } } } provisionalPlan.setProjectAttrStr(builder.toString()); } else { for (Map.Entry entry : projectAttributes.entrySet()) { if (provisionalPlan.getProjectAttr() != null && provisionalPlan.getProjectAttr().equals(entry.getValue())) { provisionalPlan.setProjectAttrStr(entry.getKey()); break; } } } for (Map.Entry entry : purchaseServices.entrySet()) { if (provisionalPlan.getPurchaseServices() != null && provisionalPlan.getPurchaseServices().equals(entry.getValue())) { provisionalPlan.setPurchaseServicesStr(entry.getKey()); break; } } return provisionalPlan; } //字段赋值对应的名称 public List changeTo(List provisionalPlans) { HashMap> planEnums = dictTypeService.getAboutEnums(); HashMap projectTypesMap = planEnums.get("projectTypes"); HashMap planPurchaseModesMap = planEnums.get("planPurchaseModes"); HashMap projectAttributes = planEnums.get("projectAttributes"); HashMap purchaseServices = planEnums.get("purchaseServices"); List list = new ArrayList(); for (ProvisionalPlan provisionalPlan : provisionalPlans) { if (provisionalPlan.getPurchaseDeptId() != null) { SysDeptResponseVo sysDeptResponseVo = (SysDeptResponseVo) deptService.selectDeptById(Long.valueOf(provisionalPlan.getPurchaseDeptId())).get("sysDept"); provisionalPlan.setPurchaseDeptName(sysDeptResponseVo.getDeptName()); } for (Map.Entry entry : projectTypesMap.entrySet()) { if (provisionalPlan.getProjectType() != null && provisionalPlan.getProjectType().equals(entry.getValue())) { provisionalPlan.setProjectTypeStr(entry.getKey()); break; } } for (Map.Entry entry : planPurchaseModesMap.entrySet()) { if (provisionalPlan.getPurchaseMode() != null && provisionalPlan.getPurchaseMode().equals(entry.getValue())) { provisionalPlan.setPurchaseModeStr(entry.getKey()); break; } } //项目属性是拼接的 if (provisionalPlan.getProjectAttr().length() > 1) { StringBuilder builder = new StringBuilder(); String[] split = provisionalPlan.getProjectAttr().split(","); for (String s : split) { for (Map.Entry entry : projectAttributes.entrySet()) { if (s.equals(entry.getValue())) { builder.append(entry.getKey() + ","); break; } } } provisionalPlan.setProjectAttrStr(builder.toString()); } else { for (Map.Entry entry : projectAttributes.entrySet()) { if (provisionalPlan.getProjectAttr() != null && provisionalPlan.getProjectAttr().equals(entry.getValue())) { provisionalPlan.setProjectAttrStr(entry.getKey()); break; } } } for (Map.Entry entry : purchaseServices.entrySet()) { if (provisionalPlan.getPurchaseServices() != null && provisionalPlan.getPurchaseServices().equals(entry.getValue())) { provisionalPlan.setPurchaseServicesStr(entry.getKey()); break; } } list.add(provisionalPlan); } return list; } }