842d76e6da6fb60674b6504e04aca21e6c241f75.svn-base 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. package cn.com.goldenwater.dcproj.service.impl;
  2. import cn.com.goldenwater.dcproj.dao.TaskItemDayDao;
  3. import cn.com.goldenwater.dcproj.dto.BisInspTaskDthDayDto;
  4. import cn.com.goldenwater.dcproj.dto.TaskItemDayDto;
  5. import cn.com.goldenwater.dcproj.model.BisInspTaskDthDay;
  6. import cn.com.goldenwater.dcproj.model.TaskItemDay;
  7. import cn.com.goldenwater.dcproj.param.BisInspTaskDthDayParam;
  8. import cn.com.goldenwater.dcproj.param.TaskItemDayParam;
  9. import cn.com.goldenwater.dcproj.service.OlBisInspOrgService;
  10. import cn.com.goldenwater.dcproj.service.TaskItemDayService;
  11. import cn.com.goldenwater.core.service.AbstractCrudService;
  12. import cn.com.goldenwater.dcproj.task.DayTypeRegService;
  13. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  14. import cn.com.goldenwater.dcproj.utils.DateUtils;
  15. import com.github.pagehelper.PageHelper;
  16. import org.apache.commons.lang3.StringUtils;
  17. import org.springframework.beans.BeanUtils;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Service;
  20. import org.springframework.transaction.annotation.Transactional;
  21. import cn.com.goldenwater.id.util.UuidUtil;
  22. import java.util.*;
  23. /**
  24. * @author lhc
  25. * @date 2020-10-20
  26. */
  27. @Service
  28. @Transactional
  29. public class TaskItemDayServiceImpl extends AbstractCrudService<TaskItemDay, TaskItemDayParam> implements TaskItemDayService {
  30. @Autowired
  31. private TaskItemDayDao taskItemDayDao;
  32. @Autowired
  33. private OlBisInspOrgService olBisInspOrgService;
  34. public TaskItemDayServiceImpl(TaskItemDayDao taskItemDayDao) {
  35. super(taskItemDayDao);
  36. this.taskItemDayDao = taskItemDayDao;
  37. }
  38. @Override
  39. public int insert(TaskItemDay taskItemDay) {
  40. // 生成uuid
  41. String uuid = UuidUtil.uuid();
  42. // 插入前判断是否存在 存在则更新,不存在则插入
  43. TaskItemDayParam taskItemDayParam = new TaskItemDayParam();
  44. taskItemDayParam.setAdCode(taskItemDay.getAdCode());
  45. taskItemDayParam.setObjType(taskItemDay.getObjType());
  46. taskItemDayParam.setTm(taskItemDay.getTm());
  47. taskItemDayParam.setItemName(taskItemDay.getItemName());
  48. List<TaskItemDay> bisInspTaskDthDays = taskItemDayDao.findList(taskItemDayParam);
  49. taskItemDay.setUptm(new Date());
  50. if (bisInspTaskDthDays.size() == 1) {
  51. taskItemDay.setId(bisInspTaskDthDays.get(0).getId());
  52. return this.taskItemDayDao.update(taskItemDay);
  53. } else {
  54. taskItemDay.setId(uuid);
  55. taskItemDay.setIntm(new Date());
  56. taskItemDay.setDataStat("0");
  57. return this.taskItemDayDao.insert(taskItemDay);
  58. }
  59. }
  60. @Override
  61. public int update(TaskItemDay taskItemDay) {
  62. taskItemDay.setUptm(new Date());
  63. return this.taskItemDayDao.update(taskItemDay);
  64. }
  65. @Override
  66. public int delete(String id) {
  67. return this.taskItemDayDao.delete(id);
  68. }
  69. @Override
  70. public List<TaskItemDay> find(TaskItemDayDto taskItemDayDto) {
  71. setDate(taskItemDayDto);
  72. // 判断市县级别
  73. taskItemDayDto.setAdGrad("3");
  74. if (StringUtils.isNotBlank(taskItemDayDto.getAdCode())){
  75. String addvcd = AdLevelUtil.getAddvcd(taskItemDayDto.getAdCode());
  76. taskItemDayDto.setAdCode(addvcd);
  77. if (addvcd.length() == 4) {
  78. // 市级编码
  79. taskItemDayDto.setAdGrad("4");
  80. }
  81. } else {
  82. // 没有AD_CODE, 设置指定省份,防止获取到多个省数据
  83. String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getProvince(taskItemDayDto.getOrgId()));
  84. taskItemDayDto.setAdCode(province);
  85. }
  86. if(StringUtils.isNotBlank(taskItemDayDto.getObjType())){
  87. taskItemDayDto.setObjType(String.valueOf(Integer.parseInt(taskItemDayDto.getObjType())));
  88. }
  89. TaskItemDayParam taskItemDayParam = new TaskItemDayParam();
  90. BeanUtils.copyProperties(taskItemDayDto, taskItemDayParam);
  91. List<TaskItemDay> taskItemDayList = taskItemDayDao.findForCity(taskItemDayParam);
  92. for (TaskItemDay taskItemDay : taskItemDayList){
  93. taskItemDay.setItemName(Optional.ofNullable(taskItemDay.getItemName()).orElse(""));
  94. taskItemDay.setErrorPlbm(Optional.ofNullable(taskItemDay.getErrorPlbm()).orElse(0));
  95. taskItemDay.setErrorsPlbm(Optional.ofNullable(taskItemDay.getErrorsPlbm()).orElse(0));
  96. taskItemDay.setWarmPlbm(Optional.ofNullable(taskItemDay.getWarmPlbm()).orElse(0));
  97. taskItemDay.setInfoPlbm(Optional.ofNullable(taskItemDay.getInfoPlbm()).orElse(0));
  98. taskItemDay.setPblmLogSize(Optional.ofNullable(taskItemDay.getPblmLogSize()).orElse(0));
  99. taskItemDay.setMendSize(Optional.ofNullable(taskItemDay.getMendSize()).orElse(0));
  100. taskItemDay.setPblmSize(Optional.ofNullable(taskItemDay.getPblmSize()).orElse(0));
  101. }
  102. return taskItemDayList;
  103. }
  104. private void setDate(TaskItemDayDto taskItemDayDto) {
  105. // 1. 判断 时间类别
  106. String timeType = Optional.ofNullable(taskItemDayDto)
  107. .map(TaskItemDayDto::getTimeType)
  108. .orElse("");
  109. if(null != timeType && timeType.contains("_")){
  110. //自定义时间段
  111. String[] dateStr = timeType.split("_");
  112. if( 2 == dateStr.length){
  113. taskItemDayDto.setSttm(dateStr[0]);
  114. taskItemDayDto.setEntm(dateStr[1]);
  115. return ;
  116. }
  117. }
  118. Date entm = DayTypeRegService.getToday();
  119. Calendar sttm = Calendar.getInstance();
  120. switch (timeType) {
  121. // 近一个月
  122. case "1":
  123. sttm.add(Calendar.MONTH, -1);
  124. break;
  125. // 近三个月
  126. case "2":
  127. sttm.add(Calendar.MONTH, -3);
  128. break;
  129. // 近半年
  130. case "3":
  131. sttm.add(Calendar.MONTH, -6);
  132. break;
  133. // 近一年
  134. case "4":
  135. sttm.add(Calendar.YEAR, -1);
  136. break;
  137. case "6":
  138. sttm.set(Integer.parseInt(DateUtils.getToday("yyyy")), Calendar.JANUARY, 1);
  139. break;
  140. default:
  141. }
  142. assert taskItemDayDto != null;
  143. taskItemDayDto.setSttm(DateUtils.Calendar2Str(sttm, "yyyy-MM-dd"));
  144. taskItemDayDto.setEntm(DateUtils.Date2Str(entm, "yyyy-MM-dd"));
  145. }
  146. }