PlanQuarterServiceImpl.java 24 KB

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