4aab440efba5f3299f2e9ad8f89a9b6391c8a13b.svn-base 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. package cn.com.goldenwater.dcproj.service.impl.tac;
  2. import cn.com.goldenwater.dcproj.dao.TacExprRcmmDao;
  3. import cn.com.goldenwater.dcproj.dao.TacExprRcmmRcrdDao;
  4. import cn.com.goldenwater.dcproj.dto.TacCountDto;
  5. import cn.com.goldenwater.dcproj.dto.TacExprRcmmRcrdCountDto;
  6. import cn.com.goldenwater.dcproj.dto.TacExprRcmmRcrdDto;
  7. import cn.com.goldenwater.dcproj.model.TacExprRcmm;
  8. import cn.com.goldenwater.dcproj.model.TacExprRcmmRcrd;
  9. import cn.com.goldenwater.dcproj.param.TacExprRcmmParam;
  10. import cn.com.goldenwater.dcproj.param.TacExprRcmmRcrdParam;
  11. import cn.com.goldenwater.dcproj.service.TacExprRcmmRcrdService;
  12. import cn.com.goldenwater.core.service.AbstractCrudService;
  13. import cn.com.goldenwater.dcproj.utils.FormatFieldUtil;
  14. import cn.com.goldenwater.id.util.UuidUtil;
  15. import com.github.pagehelper.PageHelper;
  16. import org.apache.commons.lang3.StringUtils;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.stereotype.Service;
  19. import org.springframework.transaction.annotation.Transactional;
  20. import java.text.ParseException;
  21. import java.text.SimpleDateFormat;
  22. import java.util.*;
  23. /**
  24. * @author lune
  25. * @date 2019-11-13
  26. */
  27. @Service
  28. @Transactional
  29. public class TacExprRcmmRcrdServiceImpl extends AbstractCrudService<TacExprRcmmRcrd, TacExprRcmmRcrdParam> implements TacExprRcmmRcrdService {
  30. @Autowired
  31. private TacExprRcmmRcrdDao tacExprRcmmRcrdDao;
  32. @Autowired
  33. private TacExprRcmmDao rcmmDao;
  34. public TacExprRcmmRcrdServiceImpl(TacExprRcmmRcrdDao tacExprRcmmRcrdDao) {
  35. super(tacExprRcmmRcrdDao);
  36. this.tacExprRcmmRcrdDao = tacExprRcmmRcrdDao;
  37. }
  38. @Override
  39. public List<TacExprRcmmRcrdDto> getRcrdDtoList(TacExprRcmmRcrdParam tacExprRcmmRcrdParam) {
  40. List<TacExprRcmmRcrdDto> list = tacExprRcmmRcrdDao.getRcrdDtoList(tacExprRcmmRcrdParam);
  41. return list;
  42. }
  43. @Override
  44. public int cleanRcrdByExprTime(TacExprRcmmRcrdDto dto) {
  45. int a = tacExprRcmmRcrdDao.cleanRcrdByExprTime(dto);
  46. return 0;
  47. }
  48. @Override
  49. public boolean saveRcrdDto(TacExprRcmmRcrdDto dto) throws ParseException {
  50. if (dto == null) {
  51. return false;
  52. }
  53. if (dto.getRcmmList() == null || dto.getRcmmList().size() == 0) {
  54. return true;
  55. }
  56. Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(dto.getExprTm());
  57. TacExprRcmmParam rcmmParam = new TacExprRcmmParam();
  58. rcmmParam.setExprTm(dto.getExprTm());
  59. List<TacExprRcmm> list = rcmmDao.getRcmmListByTime(rcmmParam);
  60. dto.getRcmmList().forEach(rcmm -> {
  61. int index = -1;
  62. if ((index = isContains(list,rcmm)) > -1) {
  63. list.remove(index);
  64. } else {
  65. TacExprRcmmRcrd rcmmRcrd = new TacExprRcmmRcrd();
  66. rcmmRcrd.setId(UuidUtil.uuid());
  67. rcmmRcrd.setIntm(date);
  68. rcmmRcrd.setUptm(date);
  69. rcmmRcrd.setState("1");
  70. rcmmRcrd.setExprRcmmId(rcmm.getId());
  71. rcmmRcrd.setPersId(dto.getPersId());
  72. rcmmRcrd.setDataStat("0");
  73. tacExprRcmmRcrdDao.insert(rcmmRcrd);
  74. }
  75. });
  76. if (list.size() > 0) {
  77. list.forEach(rcmm -> {
  78. TacExprRcmmRcrdParam rcmmRcrdParam = new TacExprRcmmRcrdParam();
  79. rcmmRcrdParam.setIntm(date);
  80. rcmmRcrdParam.setExprRcmmId(rcmm.getId());
  81. tacExprRcmmRcrdDao.deleteBy(rcmmRcrdParam);
  82. });
  83. }
  84. return true;
  85. }
  86. private int isContains(List<TacExprRcmm> list, TacExprRcmm rcmm) {
  87. if (list == null || list.isEmpty()) {
  88. return -1;
  89. }
  90. for (TacExprRcmm tacExprRcmm : list) {
  91. if (tacExprRcmm.getId().equals(rcmm.getId())) {
  92. return list.indexOf(tacExprRcmm);
  93. }
  94. }
  95. return -1;
  96. }
  97. @Override
  98. public int updateRcmmListByExprTime(TacExprRcmmRcrdDto dto) {
  99. if (dto == null || StringUtils.isBlank(dto.getExprTm())) {
  100. return 0;
  101. }
  102. int result = rcmmDao.updateByExprTime(dto);
  103. return 0;
  104. }
  105. @Override
  106. public List<TacExprRcmmRcrdCountDto> countRcrdByAdCode(TacExprRcmmRcrdParam tacExprRcmmRcrdParam) {
  107. List<TacCountDto> list = tacExprRcmmRcrdDao.countRcrdByAdCode(tacExprRcmmRcrdParam);
  108. Map<String, TacExprRcmmRcrdCountDto> map = new HashMap<>();
  109. if (list.size() > 0) {
  110. list.forEach(tacCountDto -> {
  111. if (!map.containsKey(tacCountDto.getCode())) {
  112. TacExprRcmmRcrdCountDto dto = new TacExprRcmmRcrdCountDto();
  113. dto.setAdCode(tacCountDto.getCode());
  114. dto.setAdName(tacCountDto.getName());
  115. setTacExprRcmmCountValue(dto,tacCountDto);
  116. map.put(tacCountDto.getCode(), dto);
  117. } else {
  118. setTacExprRcmmCountValue(map.get(tacCountDto.getCode()), tacCountDto);
  119. }
  120. });
  121. }
  122. List<TacExprRcmmRcrdCountDto> result = new ArrayList<TacExprRcmmRcrdCountDto>(map.values());
  123. result.forEach(tacExprRcmmRcrdCountDto -> {
  124. if (tacExprRcmmRcrdCountDto.getCount() != null && tacExprRcmmRcrdCountDto.getCount() > 0) {
  125. tacExprRcmmRcrdCountDto.setRcmm("1");
  126. }
  127. formatField(tacExprRcmmRcrdCountDto);
  128. });
  129. return result;
  130. }
  131. private void formatField(TacExprRcmmRcrdCountDto tacExprRcmmRcrdCountDto) {
  132. if (StringUtils.isBlank(tacExprRcmmRcrdCountDto.getRcmm())) {
  133. tacExprRcmmRcrdCountDto.setRcmm("2");
  134. }
  135. tacExprRcmmRcrdCountDto.setRcmm(FormatFieldUtil.commonFormat(tacExprRcmmRcrdCountDto.getRcmm()));
  136. }
  137. private void setTacExprRcmmCountValue(TacExprRcmmRcrdCountDto tacExprRcmmRcrdCountDto, TacCountDto tacCountDto) {
  138. if (tacExprRcmmRcrdCountDto == null || tacCountDto == null) {
  139. return;
  140. }
  141. Long allCount = tacExprRcmmRcrdCountDto.getCount() == null ? new Long(0) : tacExprRcmmRcrdCountDto.getCount();
  142. Long count = Long.valueOf(tacCountDto.getCount()) == null ? new Long(0) : Long.valueOf(tacCountDto.getCount());
  143. switch (tacCountDto.getRoleType() == null ? "" : tacCountDto.getRoleType()) {
  144. case "20":
  145. tacExprRcmmRcrdCountDto.setSpeCount(count);
  146. break;
  147. case "19":
  148. tacExprRcmmRcrdCountDto.setAssCount(count);
  149. break;
  150. case "11":
  151. tacExprRcmmRcrdCountDto.setEarCount(count);
  152. break;
  153. case "12":
  154. tacExprRcmmRcrdCountDto.setDevCount(count);
  155. break;
  156. case "13":
  157. tacExprRcmmRcrdCountDto.setPlanCount(count);
  158. break;
  159. case "14":
  160. tacExprRcmmRcrdCountDto.setFincount(count);
  161. break;
  162. case "15":
  163. tacExprRcmmRcrdCountDto.setPlanCount(count);
  164. break;
  165. case "16":
  166. tacExprRcmmRcrdCountDto.setSafeCount(count);
  167. break;
  168. }
  169. tacExprRcmmRcrdCountDto.setCount(allCount + count);
  170. }
  171. @Override
  172. public List<TacExprRcmmRcrd> getRcmmRcrdList(TacExprRcmmRcrdParam tacExprRcmmRcrdParam) {
  173. List<TacExprRcmmRcrd> list = tacExprRcmmRcrdDao.getRcmmRcrdList(tacExprRcmmRcrdParam);
  174. return list;
  175. }
  176. }