SubsidyCountServiceImpl.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package com.huimv.cattle.service.impl;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  6. import com.huimv.cattle.pojo.IndustryOutput;
  7. import com.huimv.cattle.pojo.SubsidyCount;
  8. import com.huimv.cattle.mapper.SubsidyCountMapper;
  9. import com.huimv.cattle.service.SubsidyCountService;
  10. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  11. import com.huimv.cattle.token.TokenSign;
  12. import com.huimv.cattle.utils.DateUtil;
  13. import com.huimv.common.utils.Result;
  14. import com.huimv.common.utils.ResultCode;
  15. import org.apache.commons.lang3.StringUtils;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import javax.servlet.http.HttpServletRequest;
  20. import java.math.BigDecimal;
  21. import java.util.*;
  22. /**
  23. * <p>
  24. * 服务实现类
  25. * </p>
  26. *
  27. * @author zn
  28. * @since 2022-12-15
  29. */
  30. @Service
  31. public class SubsidyCountServiceImpl extends ServiceImpl<SubsidyCountMapper, SubsidyCount> implements SubsidyCountService {
  32. @Autowired
  33. private SubsidyCountMapper subsidyCountMapper;
  34. @Autowired
  35. private DateUtil dateUtil;
  36. @Override
  37. public Result getSubsidyCount(HttpServletRequest request, Map<String, String> paramsMap) {
  38. String farmCode = paramsMap.get("farmCode");
  39. if (StringUtils.isBlank(farmCode)) {
  40. farmCode = TokenSign.getFarmCode(request);
  41. }
  42. String yearNum = paramsMap.get("yearNum");
  43. // if (StringUtils.isBlank(yearNum)){
  44. // yearNum = "0";
  45. // }
  46. QueryWrapper<SubsidyCount> queryWrapper = new QueryWrapper<SubsidyCount>();
  47. if(StringUtils.isNotBlank(yearNum)) {
  48. queryWrapper.between("year", Integer.valueOf(dateUtil.getThisYear()) - Integer.valueOf(yearNum), Integer.valueOf(dateUtil.getThisYear()));
  49. // queryWrapper.last("LIMIT "+yearNum);
  50. }
  51. queryWrapper.eq("farm_code", farmCode);
  52. queryWrapper.orderByDesc("year");
  53. List<SubsidyCount> subsidyCounts = subsidyCountMapper.selectList(queryWrapper);
  54. if (ObjectUtil.isEmpty(subsidyCounts)) {
  55. SubsidyCount subsidyCount1 = new SubsidyCount();
  56. subsidyCount1.setYear(Integer.valueOf(dateUtil.getThisYear()));
  57. subsidyCount1.setSubsidyCount(BigDecimal.ZERO);
  58. subsidyCount1.setFarmCode(farmCode);
  59. subsidyCounts.add(subsidyCount1);
  60. subsidyCountMapper.insert(subsidyCount1);
  61. }
  62. return new Result(ResultCode.SUCCESS, subsidyCounts);
  63. }
  64. @Override
  65. public Result saveSubsidyCount(HttpServletRequest request, Map<String, String> paramsMap) {
  66. String farmCode = paramsMap.get("farmCode");
  67. if (StringUtils.isBlank(farmCode)) {
  68. farmCode = TokenSign.getFarmCode(request);
  69. }
  70. String list = paramsMap.get("list");
  71. JSONArray listJa = JSONArray.parseArray(list);
  72. List<SubsidyCount> SubsidyCountList = listJa.toJavaList(SubsidyCount.class);
  73. if (checkRepeat(SubsidyCountList)) {
  74. return new Result(10001, "有重复年份", false);
  75. } else {
  76. subsidyCountMapper.deleteAll(farmCode);
  77. }
  78. for (int a = listJa.size() - 1; a >= 0; a--) {
  79. JSONObject jsonObject = listJa.getJSONObject(a);
  80. Integer year = jsonObject.getInteger("year");
  81. SubsidyCount subsidyCount = new SubsidyCount();
  82. subsidyCount.setYear(year);
  83. subsidyCount.setSubsidyCount(jsonObject.getBigDecimal("subsidyCount"));
  84. subsidyCount.setFarmCode(farmCode);
  85. subsidyCountMapper.insert(subsidyCount);
  86. }
  87. return new Result(ResultCode.SUCCESS);
  88. }
  89. private Boolean checkRepeat(List<SubsidyCount> list) {
  90. List<Integer> collectionOptionList = new ArrayList<>();
  91. for (SubsidyCount a : list) {
  92. collectionOptionList.add(a.getYear());
  93. }
  94. Set<Integer> set = new HashSet<>(collectionOptionList);
  95. return collectionOptionList.size() != set.size();
  96. }
  97. }