package com.huimv.cattle.service.impl; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.huimv.cattle.pojo.IndustryOutput; import com.huimv.cattle.pojo.SubsidyCount; import com.huimv.cattle.mapper.SubsidyCountMapper; import com.huimv.cattle.service.SubsidyCountService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.huimv.cattle.token.TokenSign; import com.huimv.cattle.utils.DateUtil; import com.huimv.common.utils.Result; import com.huimv.common.utils.ResultCode; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.util.*; /** *

* 服务实现类 *

* * @author zn * @since 2022-12-15 */ @Service public class SubsidyCountServiceImpl extends ServiceImpl implements SubsidyCountService { @Autowired private SubsidyCountMapper subsidyCountMapper; @Autowired private DateUtil dateUtil; @Override public Result getSubsidyCount(HttpServletRequest request, Map paramsMap) { String farmCode = paramsMap.get("farmCode"); if (StringUtils.isBlank(farmCode)) { farmCode = TokenSign.getFarmCode(request); } String yearNum = paramsMap.get("yearNum"); // if (StringUtils.isBlank(yearNum)){ // yearNum = "0"; // } QueryWrapper queryWrapper = new QueryWrapper(); if(StringUtils.isNotBlank(yearNum)) { queryWrapper.between("year", Integer.valueOf(dateUtil.getThisYear()) - Integer.valueOf(yearNum), Integer.valueOf(dateUtil.getThisYear())); // queryWrapper.last("LIMIT "+yearNum); } queryWrapper.eq("farm_code", farmCode); queryWrapper.orderByDesc("year"); List subsidyCounts = subsidyCountMapper.selectList(queryWrapper); if (ObjectUtil.isEmpty(subsidyCounts)) { SubsidyCount subsidyCount1 = new SubsidyCount(); subsidyCount1.setYear(Integer.valueOf(dateUtil.getThisYear())); subsidyCount1.setSubsidyCount(BigDecimal.ZERO); subsidyCount1.setFarmCode(farmCode); subsidyCounts.add(subsidyCount1); subsidyCountMapper.insert(subsidyCount1); } return new Result(ResultCode.SUCCESS, subsidyCounts); } @Override public Result saveSubsidyCount(HttpServletRequest request, Map paramsMap) { String farmCode = paramsMap.get("farmCode"); if (StringUtils.isBlank(farmCode)) { farmCode = TokenSign.getFarmCode(request); } String list = paramsMap.get("list"); JSONArray listJa = JSONArray.parseArray(list); List SubsidyCountList = listJa.toJavaList(SubsidyCount.class); if (checkRepeat(SubsidyCountList)) { return new Result(10001, "有重复年份", false); } else { subsidyCountMapper.deleteAll(farmCode); } for (int a = listJa.size() - 1; a >= 0; a--) { JSONObject jsonObject = listJa.getJSONObject(a); Integer year = jsonObject.getInteger("year"); SubsidyCount subsidyCount = new SubsidyCount(); subsidyCount.setYear(year); subsidyCount.setSubsidyCount(jsonObject.getBigDecimal("subsidyCount")); subsidyCount.setFarmCode(farmCode); subsidyCountMapper.insert(subsidyCount); } return new Result(ResultCode.SUCCESS); } private Boolean checkRepeat(List list) { List collectionOptionList = new ArrayList<>(); for (SubsidyCount a : list) { collectionOptionList.add(a.getYear()); } Set set = new HashSet<>(collectionOptionList); return collectionOptionList.size() != set.size(); } }