package cn.gistack.sm.sjztmd.service.impl;
|
|
import cn.gistack.sm.sjztmd.dto.TbProjectDTO;
|
import cn.gistack.sm.sjztmd.dto.TbProjectIsfillDTO;
|
import cn.gistack.sm.sjztmd.entity.AttAdBase;
|
import cn.gistack.sm.sjztmd.entity.TbProject;
|
import cn.gistack.sm.sjztmd.entity.TbProjectSchedule;
|
import cn.gistack.sm.sjztmd.excel.TbProjectExcel;
|
import cn.gistack.sm.sjztmd.mapper.TbProjectMapper;
|
import cn.gistack.sm.sjztmd.service.IAttAdBaseService;
|
import cn.gistack.sm.sjztmd.service.IAttResBaseService;
|
import cn.gistack.sm.sjztmd.service.ITbProjectScheduleService;
|
import cn.gistack.sm.sjztmd.service.ITbProjectService;
|
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
|
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsPie;
|
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsTable;
|
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsTableProject;
|
import cn.gistack.sm.sjztmd.util.CalculateUtils;
|
import cn.gistack.sm.sjztmd.vo.StatisticsPrice;
|
import cn.gistack.sm.sjztmd.vo.StatisticsPriceVO;
|
import cn.gistack.sm.sjztmd.vo.TbProjectIsfillVO;
|
import cn.gistack.sm.sjztmd.vo.TbProjectVO;
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import lombok.AllArgsConstructor;
|
import org.springblade.core.secure.utils.AuthUtil;
|
import org.springblade.core.tool.utils.DateUtil;
|
import org.springblade.core.tool.utils.StringUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import java.math.BigDecimal;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.Arrays;
|
import java.util.Date;
|
import java.util.List;
|
|
@Service
|
@Transactional(rollbackFor = Exception.class)
|
@DS("zt")
|
@AllArgsConstructor
|
public class TbProjectServiceImpl extends ServiceImpl<TbProjectMapper, TbProject> implements ITbProjectService {
|
|
private final ITbProjectScheduleService tbProjectScheduleService;
|
private final IAttResBaseService attResBaseService;
|
@Autowired
|
private IAttAdBaseService iAttAdBaseService;
|
|
@Override
|
public Object getList(TbProjectVO tbProjectVO, IPage<TbProjectVO> page) {
|
if (StringUtil.isNotBlank(tbProjectVO.getIsPage())&&tbProjectVO.getIsPage().equals("1")){
|
//isPage不为空且 isPage为1时分页
|
return page.setRecords(baseMapper.getList(page,tbProjectVO));
|
}
|
|
//否则不分页
|
return baseMapper.getList(null,tbProjectVO);
|
}
|
|
@Override
|
public Boolean updateCustomize(TbProjectDTO tbProjectDTO) {
|
|
tbProjectDTO.setUpdateUser(AuthUtil.getUserId().toString());
|
tbProjectDTO.setUpdateTime(DateUtil.now());
|
if(tbProjectDTO.getIsFill().equals("0")){
|
tbProjectDTO.setCheckState("0");
|
}else if(tbProjectDTO.getIsFill().equals("1")){
|
tbProjectDTO.setCheckState("1");
|
}
|
//更新项目表
|
boolean update = updateById(tbProjectDTO);
|
|
//更新进度
|
List<TbProjectSchedule> tbProjectScheduleList = tbProjectDTO.getTbProjectScheduleList();
|
|
if (tbProjectScheduleList != null && tbProjectScheduleList.size()>0){
|
tbProjectScheduleList.forEach(tbProjectSchedule -> {
|
tbProjectSchedule.setTbProjectId(tbProjectDTO.getGuid());
|
tbProjectSchedule.setUpdateUser(AuthUtil.getUserId().toString());
|
tbProjectSchedule.setUpdateTime(DateUtil.now());
|
|
if (StringUtil.isBlank(tbProjectSchedule.getGuid())){
|
tbProjectSchedule.setCreateUser(AuthUtil.getUserId().toString());
|
tbProjectSchedule.setCreateTime(DateUtil.now());
|
}
|
tbProjectScheduleService.saveOrUpdate(tbProjectSchedule);
|
});
|
}
|
|
//删除去掉的进度
|
if (StringUtil.isNotBlank(tbProjectDTO.getDeleteScheduleIds())){
|
String ids = tbProjectDTO.getDeleteScheduleIds();
|
tbProjectScheduleService.removeByIds(Arrays.asList(ids.split(",")));
|
}
|
|
return update;
|
}
|
|
@Override
|
public TbProjectDTO getDetail(String id) {
|
return baseMapper.getDetail(id);
|
}
|
|
@Override
|
public List<StatisticsTableProject> getStatisticsTable(StatisticsParams statisticsParams) {
|
return baseMapper.getStatisticsTable(statisticsParams);
|
}
|
|
@Override
|
public void importUser(List<TbProjectExcel> data, Boolean isCovered) {
|
data.forEach(tbProjectExcel -> {
|
|
String cityName = tbProjectExcel.getCityName();
|
String countyName = tbProjectExcel.getCountyName();
|
|
AttAdBase attAdBase = attResBaseService.getYwxtResInfo(cityName,countyName);
|
|
TbProject params = new TbProject();
|
|
params.setCityCode(attAdBase.getPAdCode());
|
params.setCountyCode(attAdBase.getAdCode());
|
params.setTbYear(tbProjectExcel.getTbYear());
|
|
|
TbProject tbProject = baseMapper.getTbProjectInfo(params);
|
|
if (tbProject != null){
|
//有这条数据,更新
|
|
//更新中央资金
|
BigDecimal oldCenterFund = new BigDecimal(tbProject.getCenterFund());
|
BigDecimal newCenterFund = new BigDecimal(tbProjectExcel.getCenterFund());
|
tbProject.setCenterFund(CalculateUtils.add(oldCenterFund,newCenterFund));
|
|
//更新地方资金
|
BigDecimal oldLocalFund = new BigDecimal(tbProject.getCenterFund());
|
BigDecimal newLocalFund = new BigDecimal(tbProjectExcel.getCenterFund());
|
tbProject.setLocalFund(CalculateUtils.add(oldLocalFund,newLocalFund));
|
|
//更新修改人,修改时间
|
tbProject.setUpdateUser(AuthUtil.getUserId().toString());
|
tbProject.setUpdateTime(DateUtil.now());
|
|
updateById(tbProject);
|
} else {
|
//无数据,新增
|
TbProject save = new TbProject();
|
save.setUpdateUser(AuthUtil.getUserId().toString());
|
save.setCreateUser(AuthUtil.getUserId().toString());
|
save.setCreateTime(DateUtil.now());
|
save.setUpdateTime(DateUtil.now());
|
|
save.setCityName(attAdBase.getPAdName());
|
save.setCityCode(attAdBase.getPAdCode());
|
|
save.setCountyName(attAdBase.getAdName());
|
save.setCountyCode(attAdBase.getAdCode());
|
|
save.setCenterFund(tbProjectExcel.getCenterFund());
|
save.setLocalFund(tbProjectExcel.getLocalFund());
|
|
save.setTbYear(tbProjectExcel.getTbYear());
|
|
save(save);
|
}
|
});
|
}
|
|
@Override
|
public boolean updatecheckState(String id,String checkState) {
|
TbProject tbProject = getById(id);
|
if(checkState.equals("0")){
|
tbProject.setIsFill(checkState);
|
}
|
tbProject.setCheckState(checkState);
|
return saveOrUpdate(tbProject);
|
}
|
|
@Override
|
public StatisticsPrice statisticsPie(StatisticsParams statisticsParams) {
|
|
AttAdBase ywxtAdDetail = iAttAdBaseService.getYwxtAdDetail(statisticsParams.getAdCode());
|
if (ywxtAdDetail.getAdGrad().equals("1")) {
|
StatisticsPrice statisticsPie =baseMapper.getStatisticsPie(statisticsParams);
|
return statisticsPie;
|
}
|
StatisticsPrice statisticsPie =baseMapper.getStatisticsPies(statisticsParams);
|
|
return statisticsPie;
|
}
|
|
@Override
|
public List<StatisticsPriceVO> statisticsBar(StatisticsParams statisticsParams) {
|
AttAdBase ywxtAdDetail = iAttAdBaseService.getYwxtAdDetail(statisticsParams.getAdCode());
|
if (ywxtAdDetail.getAdGrad().equals("1")) {
|
List<StatisticsPriceVO> statisticsPieBar =baseMapper.getStatisticsPieBar(statisticsParams);
|
return statisticsPieBar;
|
}
|
List<StatisticsPriceVO> statisticsPieBar =baseMapper.getStatisticsPieBars(statisticsParams);
|
return statisticsPieBar;
|
}
|
|
@Override
|
public void updateallcheck() throws Exception {
|
Date now = new Date();
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
String today = sdf.format(now);
|
|
// 转换为年月格式,用于检查是否为月初
|
String yearMonth = sdf.format(sdf.parse(today).getTime()).substring(0, 7);
|
// 检查当前日期是否为月初
|
if (today.startsWith(yearMonth + "-01")) {
|
baseMapper.updateallcheck();
|
} else {
|
System.out.println("不是月初,不予修改状态");
|
}
|
|
}
|
|
@Override
|
public void updateFill(TbProjectIsfillDTO fil) {
|
baseMapper.updateFill(fil);
|
}
|
|
@Override
|
public TbProjectIsfillVO getfill() {
|
return baseMapper.getfill();
|
}
|
}
|