PlanYearsServiceImpl.java 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561
  1. package com.ozs.plan.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.github.pagehelper.PageHelper;
  5. import com.github.pagehelper.PageInfo;
  6. import com.ozs.common.core.domain.AjaxResult;
  7. import com.ozs.common.core.domain.entity.SysDept;
  8. import com.ozs.common.core.domain.entity.SysDictData;
  9. import com.ozs.common.core.domain.model.LoginUser;
  10. import com.ozs.common.enums.ProjectStatus;
  11. import com.ozs.common.enums.ProjectTypes;
  12. import com.ozs.common.enums.SysFileRefEnum;
  13. import com.ozs.common.exception.ServiceException;
  14. import com.ozs.common.utils.StringUtils;
  15. import com.ozs.common.utils.bean.BeanUtils;
  16. import com.ozs.plan.doman.PlanYears;
  17. import com.ozs.plan.doman.vo.requestVo.PlanYearsStandardVo;
  18. import com.ozs.plan.doman.vo.responseVo.PlanYearsResponseVo;
  19. import com.ozs.plan.mapper.PlanYearsMapper;
  20. import com.ozs.plan.service.PlanYearsService;
  21. import com.ozs.system.domain.SysFileInfo;
  22. import com.ozs.system.domain.SysFileRef;
  23. import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo;
  24. import com.ozs.system.mapper.SysDeptMapper;
  25. import com.ozs.system.mapper.SysFileRefMapper;
  26. import com.ozs.system.service.ISysDeptService;
  27. import com.ozs.system.service.ISysDictTypeService;
  28. import com.ozs.system.service.SysFileService;
  29. import lombok.extern.slf4j.Slf4j;
  30. import org.springframework.beans.factory.annotation.Autowired;
  31. import org.springframework.stereotype.Service;
  32. import org.springframework.transaction.annotation.Transactional;
  33. import org.springframework.util.ObjectUtils;
  34. import javax.validation.Validator;
  35. import java.math.BigDecimal;
  36. import java.util.ArrayList;
  37. import java.util.Date;
  38. import java.util.HashMap;
  39. import java.util.LinkedHashMap;
  40. import java.util.List;
  41. import java.util.Map;
  42. /**
  43. * @author buzhanyi
  44. */
  45. @Service
  46. @Slf4j
  47. public class PlanYearsServiceImpl implements PlanYearsService {
  48. @Autowired
  49. PlanYearsMapper planYearsMapper;
  50. @Autowired
  51. protected Validator validator;
  52. @Autowired
  53. private ISysDictTypeService dictTypeService;
  54. @Autowired
  55. private ISysDeptService deptService;
  56. @Autowired
  57. SysFileRefMapper sysFileRefMapper;
  58. @Autowired
  59. private SysDeptMapper deptMapper;
  60. @Autowired
  61. private SysFileService fileService;
  62. @Override
  63. public PageInfo<PlanYears> selectPlanYearsList(PlanYearsStandardVo vo) {
  64. PlanYears ofYears = new PlanYears();
  65. List<PlanYears> planYears;
  66. List<PlanYears> planYearsList = new ArrayList<>();
  67. PageHelper.startPage(vo.getPageNum().intValue(), vo.getPageSize().intValue());
  68. try {
  69. BeanUtils.copyProperties(vo, ofYears);
  70. planYears = planYearsMapper.selectPlanYearsList(ofYears);
  71. planYearsList = changeTo(planYears);
  72. } catch (Exception e) {
  73. e.printStackTrace();
  74. }
  75. PageInfo<PlanYears> pageInfo = new PageInfo<PlanYears>(planYearsList);
  76. return pageInfo;
  77. }
  78. @Override
  79. public List<PlanYears> selectPlanYearsListEXP(PlanYearsStandardVo vo) {
  80. List<PlanYears> list = new ArrayList<>();
  81. List<PlanYears> planYearsList = new ArrayList<>();
  82. try {
  83. int num = 1;
  84. int size = 200;
  85. while (size == 200) {
  86. LambdaQueryWrapper<PlanYears> lw = new LambdaQueryWrapper<PlanYears>();
  87. if (!ObjectUtils.isEmpty(vo.getProjectName())) {
  88. lw.like(PlanYears::getProjectName, vo.getProjectName());
  89. }
  90. if (!ObjectUtils.isEmpty(vo.getPurchaseServices())) {
  91. lw.eq(PlanYears::getPurchaseServices, vo.getPurchaseServices());
  92. }
  93. if (!ObjectUtils.isEmpty(vo.getIsExcess())) {
  94. lw.eq(PlanYears::getIsExcess, vo.getIsExcess());
  95. }
  96. if (!ObjectUtils.isEmpty(vo.getProjectStatus())) {
  97. lw.eq(PlanYears::getProjectStatus, vo.getProjectStatus());
  98. }
  99. if (!ObjectUtils.isEmpty(vo.getBeginTime())) {
  100. lw.ge(PlanYears::getPlanDemandSubTime, vo.getBeginTime());
  101. }
  102. if (!ObjectUtils.isEmpty(vo.getEndTime())) {
  103. lw.le(PlanYears::getPlanDemandSubTime, vo.getEndTime());
  104. }
  105. Page<PlanYears> page = planYearsMapper.selectPage(new Page<PlanYears>(num, size, false), lw);
  106. list.addAll(page.getRecords());
  107. size = page.getRecords().size();
  108. num++;
  109. }
  110. planYearsList = changeTo(list);
  111. } catch (Exception e) {
  112. e.printStackTrace();
  113. }
  114. return planYearsList;
  115. }
  116. @Override
  117. public PageInfo<PlanYears> selectPlanYearsExamineList(PlanYearsStandardVo vo) {
  118. PlanYears ofYears = new PlanYears();
  119. PageHelper.startPage(vo.getPageNum().intValue(), vo.getPageSize().intValue());
  120. List<PlanYears> planYears;
  121. List<PlanYears> planYearsList = new ArrayList<>();
  122. try {
  123. BeanUtils.copyProperties(vo, ofYears);
  124. planYears = planYearsMapper.selectPlanYearsExamineList(ofYears);
  125. planYearsList = changeTo(planYears);
  126. } catch (Exception e) {
  127. e.printStackTrace();
  128. }
  129. PageInfo<PlanYears> pageInfo = new PageInfo<PlanYears>(planYearsList);
  130. return pageInfo;
  131. }
  132. @Override
  133. public List<PlanYears> selectPlanYearsExamineListEXP(PlanYearsStandardVo vo) {
  134. List<PlanYears> list = new ArrayList<>();
  135. List<PlanYears> planYearsList = new ArrayList<>();
  136. try {
  137. int num = 1;
  138. int size = 200;
  139. while (size == 200) {
  140. LambdaQueryWrapper<PlanYears> lw = new LambdaQueryWrapper<PlanYears>();
  141. if (!ObjectUtils.isEmpty(vo.getProjectName())) {
  142. lw.like(PlanYears::getProjectName, vo.getProjectName());
  143. }
  144. if (!ObjectUtils.isEmpty(vo.getPurchaseServices())) {
  145. lw.eq(PlanYears::getPurchaseServices, vo.getPurchaseServices());
  146. }
  147. if (!ObjectUtils.isEmpty(vo.getIsExcess())) {
  148. lw.eq(PlanYears::getIsExcess, vo.getIsExcess());
  149. }
  150. if (!ObjectUtils.isEmpty(vo.getProjectStatus())) {
  151. lw.eq(PlanYears::getProjectStatus, vo.getProjectStatus());
  152. } else {
  153. lw.in(PlanYears::getProjectStatus, "1,3");
  154. }
  155. if (!ObjectUtils.isEmpty(vo.getBeginTime())) {
  156. lw.ge(PlanYears::getPlanDemandSubTime, vo.getBeginTime());
  157. }
  158. if (!ObjectUtils.isEmpty(vo.getEndTime())) {
  159. lw.le(PlanYears::getPlanDemandSubTime, vo.getEndTime());
  160. }
  161. Page<PlanYears> page = planYearsMapper.selectPage(new Page<PlanYears>(num, size, false), lw);
  162. list.addAll(page.getRecords());
  163. size = page.getRecords().size();
  164. num++;
  165. }
  166. planYearsList = changeTo(list);
  167. } catch (Exception e) {
  168. e.printStackTrace();
  169. }
  170. return planYearsList;
  171. }
  172. @Transactional
  173. @Override
  174. public AjaxResult insertPlanYears(PlanYearsStandardVo yearsStandardVo) {
  175. if (planYearsMapper.countProjectName(yearsStandardVo.getProjectName()).size() > 0) {
  176. return AjaxResult.error("该项目名称已经存在");
  177. }
  178. PlanYears ofYears = new PlanYears();
  179. try {
  180. BeanUtils.copyProperties(yearsStandardVo, ofYears);
  181. } catch (Exception e) {
  182. e.printStackTrace();
  183. }
  184. //判断是否为超额计划
  185. ofYears.setIsExcess(isExcessOrNo(ofYears.getProjectType(), ofYears.getEvaluation()));
  186. ofYears.setProjectStatus(ProjectStatus.PLANWAITCOMMIT.getCode());
  187. ofYears.setSendLetter("0");
  188. ofYears.setCreateTime(new Date());
  189. planYearsMapper.insertPlanYears(ofYears);
  190. log.info("id:{}", ofYears.getPlanYearId());
  191. List<SysFileRef> sysFileRefs = yearsStandardVo.getSysFileRefs();
  192. if (!ObjectUtils.isEmpty(sysFileRefs)) {
  193. for (SysFileRef ref : sysFileRefs) {
  194. ref.setRedId(ofYears.getPlanYearId());
  195. ref.setType(SysFileRefEnum.PLAN_YEAR.getType());
  196. ref.setCreated(ofYears.getCreated());
  197. ref.setCreateTime(new Date());
  198. ref.setUpdated(ofYears.getCreated());
  199. ref.setUpdateTime(new Date());
  200. sysFileRefMapper.insert(ref);
  201. }
  202. }
  203. return AjaxResult.success();
  204. }
  205. @Override
  206. public AjaxResult deletePlanYearsByIds(Long[] planIds) {
  207. planYearsMapper.deletePlanYearsByIds(planIds);
  208. return AjaxResult.success();
  209. }
  210. @Override
  211. public AjaxResult deletePlanYearsById(Long planId) {
  212. planYearsMapper.deletePlanYearsById(planId);
  213. return AjaxResult.success();
  214. }
  215. @Override
  216. public AjaxResult view(PlanYearsStandardVo yearsStandardVo) {
  217. PlanYearsResponseVo responseVo = new PlanYearsResponseVo();
  218. PlanYears byId = planYearsMapper.getById(yearsStandardVo.getPlanYearId());
  219. byId.getPlanYearId();
  220. if (byId == null) {
  221. return AjaxResult.error("数据查询失败");
  222. }
  223. SysDeptResponseVo sysDeptResponseVo = (SysDeptResponseVo) deptService.selectDeptById(byId.getPurchaseDeptId()).get("sysDept");
  224. byId.setPurchaseDeptName(sysDeptResponseVo.getDeptName());
  225. HashMap<String, Object> map = new HashMap<>();
  226. map.put("red_id", byId.getPlanYearId());
  227. map.put("type", "1");
  228. List<SysFileRef> fileRefs = sysFileRefMapper.selectByMap(map);
  229. List<SysFileInfo> fileInfos = new ArrayList<>();
  230. BeanUtils.copyProperties(byId, responseVo);
  231. if (!ObjectUtils.isEmpty(fileRefs)) {
  232. for (SysFileRef ref : fileRefs) {
  233. SysFileInfo fileInfo = fileService.getById(ref.getFileId());
  234. fileInfos.add(fileInfo);
  235. }
  236. responseVo.setFileInfos(fileInfos);
  237. }
  238. return AjaxResult.success(responseVo);
  239. }
  240. @Transactional
  241. @Override
  242. public AjaxResult update(PlanYearsStandardVo yearsStandardVo) {
  243. if (planYearsMapper.countProjectNameOther(yearsStandardVo.getProjectName(), String.valueOf(yearsStandardVo.getPlanYearId())) > 0) {
  244. return AjaxResult.error("该项目名称已经存在");
  245. }
  246. PlanYears ofYears = new PlanYears();
  247. try {
  248. BeanUtils.copyProperties(yearsStandardVo, ofYears);
  249. } catch (Exception e) {
  250. e.printStackTrace();
  251. }
  252. ofYears.setIsExcess(isExcessOrNo(ofYears.getProjectType(), ofYears.getEvaluation()));
  253. ofYears.setUpdateTime(new Date());
  254. ofYears.setSendLetter("0");
  255. planYearsMapper.updateInfoById(ofYears);
  256. List<SysFileRef> sysFileRefs = yearsStandardVo.getSysFileRefs();
  257. HashMap<String, Object> map = new HashMap<>();
  258. map.put("red_id", ofYears.getPlanYearId());
  259. map.put("type", "1");
  260. sysFileRefMapper.deleteByMap(map);
  261. if (!ObjectUtils.isEmpty(sysFileRefs)) {
  262. for (SysFileRef ref : sysFileRefs) {
  263. ref.setRedId(ofYears.getPlanYearId());
  264. ref.setType(SysFileRefEnum.PLAN_YEAR.getType());
  265. ref.setCreated(yearsStandardVo.getUpdated());
  266. ref.setCreateTime(new Date());
  267. ref.setUpdated(yearsStandardVo.getUpdated());
  268. ref.setUpdateTime(new Date());
  269. sysFileRefMapper.insert(ref);
  270. }
  271. }
  272. return AjaxResult.success();
  273. }
  274. @Override
  275. public String importPlanYears(List<PlanYears> planYears, boolean isUpdateSupport, LoginUser loginUser) {
  276. if (StringUtils.isNull(planYears) || planYears.size() == 0) {
  277. throw new ServiceException("导入年度计划数据不能为空!");
  278. }
  279. HashMap<String, HashMap<String, String>> planEnums = dictTypeService.getAboutEnums();
  280. HashMap<String, String> projectTypesMap = planEnums.get("projectTypes");
  281. HashMap<String, String> planPurchaseModesMap = planEnums.get("planPurchaseModes");
  282. HashMap<String, String> projectAttributes = planEnums.get("projectAttributes");
  283. HashMap<String, String> purchaseServices = planEnums.get("purchaseServices");
  284. int successNum = 0;
  285. int failureNum = 0;
  286. StringBuilder successMsg = new StringBuilder();
  287. StringBuilder failureMsg = new StringBuilder();
  288. //deptService
  289. for (PlanYears ofYear : planYears) {
  290. try {
  291. //验证项目名称是否重复导入
  292. List<PlanYears> plan = planYearsMapper.countProjectName(ofYear.getProjectName());
  293. //将录入信息中的值更改为要保存的数据
  294. if (plan.size() == 0) {
  295. //采购单位
  296. SysDept info = deptMapper.checkDeptNameOnlyOne(ofYear.getPurchaseDeptName());
  297. if (StringUtils.isNotNull(info)) {
  298. ofYear.setPurchaseDeptId(info.getDeptId());
  299. }
  300. ofYear.setProjectType(projectTypesMap.get(ofYear.getProjectType()));
  301. ofYear.setProjectStatus(ProjectStatus.PLANWAITCOMMIT.getCode());
  302. ofYear.setPurchaseMode(planPurchaseModesMap.get(ofYear.getPurchaseMode()));
  303. //项目属性是多选字段
  304. StringBuilder builder = new StringBuilder();
  305. if (ofYear.getProjectAttr().contains(",")) {
  306. String[] split = ofYear.getProjectAttr().split(",");
  307. for (String s : split) {
  308. builder.append(projectAttributes.get(s) + ",");
  309. }
  310. } else {
  311. builder.append(projectAttributes.get(ofYear.getProjectAttr()));
  312. }
  313. ofYear.setProjectAttr(builder.toString());
  314. ofYear.setPurchaseServices(purchaseServices.get(ofYear.getPurchaseServices()));
  315. ofYear.setSendLetter("0");
  316. ofYear.setIsExcess(isExcessOrNo(ofYear.getProjectType(), ofYear.getEvaluation()));
  317. ofYear.setCreated(String.valueOf(loginUser.getUserId()));
  318. ofYear.setCreateTime(new Date());
  319. planYearsMapper.insertPlanYears(ofYear);
  320. successNum++;
  321. successMsg.append("*" + successNum + "、项目 " + ofYear.getProjectName() + " 导入成功!");
  322. //} else if (isUpdateSupport) {
  323. // PlanYears years = plan.get(0);
  324. // BeanValidators.validateWithException(validator, ofYear);
  325. // years.setCreateTime(new Date());
  326. // years.setProjectStatus(ProjectStatus.PLANWAITCOMMIT.getCode());
  327. // planYearsMapper.updateById(years);
  328. // successNum++;
  329. // successMsg.append("<br/>" + successNum + "、项目 " + ofYear.getProjectName() + " 更新成功");
  330. } else {
  331. failureNum++;
  332. failureMsg.append("*" + successNum + "、项目 " + ofYear.getProjectName() + " 已存在");
  333. }
  334. } catch (Exception exc) {
  335. failureNum++;
  336. String msg = "*" + successNum + "、项目 " + ofYear.getProjectName() + " 导入失败";
  337. failureMsg.append(msg + exc.getMessage());
  338. log.error(msg, exc);
  339. }
  340. }
  341. if (failureNum > 0) {
  342. failureMsg.insert(0, "导入失败!共 " + failureNum + " 条数据格式不正确:");
  343. throw new ServiceException(failureMsg.toString());
  344. } else {
  345. successMsg.insert(0, "导入成功!共 " + successNum + " 条。");
  346. }
  347. return successMsg.toString();
  348. }
  349. @Override
  350. public AjaxResult commit(PlanYearsStandardVo yearsStandardVo) {
  351. //PlanYears byId = PlanYearsMapper.getById(yearsStandardVo.getPlanYearId());
  352. //BigDecimal evaluation = byId.getEvaluation();
  353. //BigDecimal threshold = new BigDecimal(0);
  354. ////获取各个项目类型设定的概算金额阈值
  355. //List<SysDictData> data = dictTypeService.selectDictDataByType("sys_over_limit_threshold");
  356. //HashMap<String, String> thresholdMap = new LinkedHashMap<>();
  357. ////各个类型的概算金额阈值
  358. //for (SysDictData dictData : data) {
  359. // // 类型----阈值
  360. // thresholdMap.put(dictData.getDictLabel(), dictData.getDictValue());
  361. //}
  362. ////项目类型
  363. //for (ProjectTypes value : ProjectTypes.values()) {
  364. // if (byId.getProjectType().equals(value.getCode())) {
  365. // threshold = BigDecimal.valueOf(Long.parseLong(thresholdMap.get(value.getInfo())));
  366. // }
  367. // break;
  368. //}
  369. //
  370. //if (evaluation.compareTo(threshold) == 1) {
  371. // //是超额项目
  372. //}
  373. int commit = planYearsMapper.commit(yearsStandardVo.getPlanYearId());
  374. if (commit != 1) {
  375. return AjaxResult.error("项目状态数据异常");
  376. }
  377. return AjaxResult.success();
  378. }
  379. @Override
  380. @Transactional
  381. public AjaxResult reviewTo(PlanYearsStandardVo vo) {
  382. PlanYears ofYears = new PlanYears();
  383. BeanUtils.copyProperties(vo, ofYears);
  384. ofYears.setPlanYearId(vo.getPlanYearId());
  385. ofYears.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
  386. return review(vo, ofYears);
  387. }
  388. @Override
  389. @Transactional
  390. public AjaxResult reviewReturn(PlanYearsStandardVo vo) {
  391. PlanYears ofYears = new PlanYears();
  392. BeanUtils.copyProperties(vo, ofYears);
  393. ofYears.setProjectStatus(ProjectStatus.PLANTOBACK.getCode());
  394. return review(vo, ofYears);
  395. }
  396. private AjaxResult review(PlanYearsStandardVo vo, PlanYears ofYears) {
  397. List<SysFileRef> sysFileRefs = vo.getSysFileRefs();
  398. if (!ObjectUtils.isEmpty(sysFileRefs)) {
  399. for (SysFileRef ref : sysFileRefs) {
  400. ref.setRedId(vo.getPlanYearId());
  401. ref.setType(SysFileRefEnum.PLAN_YEAR_EXAMINE.getType());
  402. ref.setCreated(vo.getUpdated());
  403. ref.setCreateTime(new Date());
  404. ref.setUpdated(vo.getUpdated());
  405. ref.setUpdateTime(new Date());
  406. sysFileRefMapper.insert(ref);
  407. }
  408. }
  409. int review = planYearsMapper.review(ofYears);
  410. if (review != 1) {
  411. return AjaxResult.error("项目状态数据异常");
  412. }
  413. return AjaxResult.success();
  414. }
  415. @Override
  416. public AjaxResult appUpdate(PlanYearsStandardVo vo) {
  417. PlanYears ofYears = new PlanYears();
  418. BeanUtils.copyProperties(vo, ofYears);
  419. //申请后会成为未提交的状态,可以进行修改
  420. ofYears.setProjectStatus(ProjectStatus.PLANWAITCOMMIT.getCode());
  421. int review = planYearsMapper.review(ofYears);
  422. if (review != 1) {
  423. return AjaxResult.error("项目状态数据异常");
  424. }
  425. return AjaxResult.success();
  426. }
  427. @Override
  428. public AjaxResult sendLetter(PlanYearsStandardVo yearsStandardVo) {
  429. int review = planYearsMapper.sendLetter(yearsStandardVo.getPlanYearId());
  430. if (review != 1) {
  431. return AjaxResult.error("项目状态数据异常");
  432. }
  433. return AjaxResult.success();
  434. }
  435. @Override
  436. public AjaxResult upLoadPlanFile(PlanYearsStandardVo yearsStandardVo) {
  437. List<SysFileRef> sysFileRefs = yearsStandardVo.getSysFileRefs();
  438. if (!ObjectUtils.isEmpty(sysFileRefs)) {
  439. for (SysFileRef ref : sysFileRefs) {
  440. ref.setRedId(yearsStandardVo.getPlanYearId());
  441. ref.setType(SysFileRefEnum.PLAN_YEAR.getType());
  442. sysFileRefMapper.insert(ref);
  443. }
  444. }
  445. return AjaxResult.success();
  446. }
  447. @Override
  448. public AjaxResult downLoadPlanFile(PlanYearsStandardVo yearsStandardVo) {
  449. return AjaxResult.success();
  450. }
  451. //判断是否为超额计划
  452. public String isExcessOrNo(String projectType, BigDecimal evaluation) {
  453. BigDecimal threshold = new BigDecimal(0);
  454. //获取各个项目类型设定的概算金额阈值
  455. List<SysDictData> data = dictTypeService.selectDictDataByType("sys_over_limit_threshold");
  456. HashMap<String, String> thresholdMap = new LinkedHashMap<>();
  457. //各个类型的概算金额阈值
  458. for (SysDictData dictData : data) {
  459. // 类型----阈值
  460. thresholdMap.put(dictData.getDictLabel(), dictData.getDictValue());
  461. }
  462. //项目类型
  463. for (ProjectTypes value : ProjectTypes.values()) {
  464. if (projectType.equals(value.getCode())) {
  465. threshold = BigDecimal.valueOf(Long.parseLong(thresholdMap.get(value.getInfo())));
  466. }
  467. break;
  468. }
  469. if (evaluation.compareTo(threshold) == 1) {
  470. //是超额计划
  471. return ("1");
  472. } else {
  473. return ("0");
  474. }
  475. }
  476. //字段赋值对应的名称
  477. public List<PlanYears> changeTo(List<PlanYears> planYears) {
  478. HashMap<String, HashMap<String, String>> planEnums = dictTypeService.getAboutEnums();
  479. HashMap<String, String> projectTypesMap = planEnums.get("projectTypes");
  480. HashMap<String, String> planPurchaseModesMap = planEnums.get("planPurchaseModes");
  481. HashMap<String, String> projectAttributes = planEnums.get("projectAttributes");
  482. HashMap<String, String> purchaseServices = planEnums.get("purchaseServices");
  483. List<PlanYears> list = new ArrayList<PlanYears>();
  484. for (PlanYears planYear : planYears) {
  485. SysDeptResponseVo sysDeptResponseVo = (SysDeptResponseVo) deptService.selectDeptById(planYear.getPurchaseDeptId()).get("sysDept");
  486. planYear.setPurchaseDeptName(sysDeptResponseVo.getDeptName());
  487. for (Map.Entry<String, String> entry : projectTypesMap.entrySet()) {
  488. if (planYear.getProjectType().equals(entry.getValue())) {
  489. planYear.setProjectTypeStr(entry.getKey());
  490. break;
  491. }
  492. }
  493. for (Map.Entry<String, String> entry : planPurchaseModesMap.entrySet()) {
  494. if (planYear.getPurchaseMode().equals(entry.getValue())) {
  495. planYear.setPurchaseModeStr(entry.getKey());
  496. break;
  497. }
  498. }
  499. //项目属性是拼接的
  500. if (planYear.getProjectAttr().length() > 1) {
  501. StringBuilder builder = new StringBuilder();
  502. String[] split = planYear.getProjectAttr().split(",");
  503. for (String s : split) {
  504. for (Map.Entry<String, String> entry : projectAttributes.entrySet()) {
  505. if (s.equals(entry.getValue())) {
  506. builder.append(entry.getKey() + ",");
  507. break;
  508. }
  509. }
  510. }
  511. planYear.setProjectAttrStr(builder.toString());
  512. } else {
  513. for (Map.Entry<String, String> entry : projectAttributes.entrySet()) {
  514. if (planYear.getProjectAttr().equals(entry.getValue())) {
  515. planYear.setProjectAttrStr(entry.getKey());
  516. break;
  517. }
  518. }
  519. }
  520. for (Map.Entry<String, String> entry : purchaseServices.entrySet()) {
  521. if (planYear.getPurchaseServices().equals(entry.getValue())) {
  522. planYear.setPurchaseServicesStr(entry.getKey());
  523. break;
  524. }
  525. }
  526. list.add(planYear);
  527. }
  528. return list;
  529. }
  530. }