123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303 |
- package com.huaxu.service.impl;
- import com.huaxu.dao.RevenueMapper;
- import com.huaxu.dto.*;
- import com.huaxu.entity.MonthRevenueEntity;
- import com.huaxu.entity.MonthSellwaterEntity;
- import com.huaxu.model.LoginUser;
- import com.huaxu.quartz.entity.QuartzEntity;
- import com.huaxu.quartz.job.SyncMeterCountJob;
- import com.huaxu.quartz.service.JobAndTriggerService;
- import com.huaxu.service.RevenueService;
- import com.huaxu.util.UserUtil;
- import lombok.extern.log4j.Log4j2;
- import org.springframework.beans.factory.InitializingBean;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import org.springframework.web.client.RestTemplate;
- import javax.annotation.Resource;
- import java.util.*;
- /**
- * @description
- * @author yjy
- * @data 2021-2-24
- */
- @Service
- @Log4j2
- public class RevenueServiceImpl implements RevenueService, InitializingBean {
- @Resource
- private RevenueMapper revenueMapper;
- @Autowired
- private JobAndTriggerService jobAndTriggerService;
- @Autowired
- private RestTemplate restTemplate;
- @Value("${http_pool.meterRequesturl}")
- private String meterRequestUrl;
- @Override
- public void afterPropertiesSet() throws Exception {
- saveQrtzTask("0 0 1 * * ? ","同步水表数量","smsWaterSyncMeterCountJob", SyncMeterCountJob.class.getName());
- }
- public void saveQrtzTask(String cron, String jobGroup ,String jobName,String JobClassName) {
- // 1,查询需要批量推送的配置项目并构建定时任务
- // 2,若对应定时任务不存在则创建
- QuartzEntity entity = new QuartzEntity();
- entity.setJobGroup(jobGroup);
- entity.setJobName(jobName);
- entity.setDescription(jobName);
- //jobAndTriggerService.deleteJob(entity);
- boolean exists = jobAndTriggerService.isExists(entity);
- if(!exists){
- entity.setCronExpression(cron);
- entity.setJobClassName(JobClassName);
- jobAndTriggerService.save(entity);
- }
- }
- /**
- * 查询本月售水信息
- * @return
- */
- @Override
- public List<MonthSellwaterDto> selectMonthSell(Integer companyOrgId) {
- MonthSellwaterDto monthSellwaterDto=new MonthSellwaterDto();
- monthSellwaterDto.setCompanyOrgId(companyOrgId);
- LoginUser loginUser = UserUtil.getCurrentUser();
- monthSellwaterDto.setTenantId(loginUser.getTenantId());
- monthSellwaterDto.setProgramItems(loginUser.getProgramItemList());
- monthSellwaterDto.setUserType(loginUser.getType());
- //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
- monthSellwaterDto.setPermissonType(loginUser.getPermissonType());
- List<MonthSellwaterDto> monthSell=revenueMapper.selectMonthSell(monthSellwaterDto);
- List<MonthSellwaterDto> result=new ArrayList<>();
- Double othersUsage=null;
- if(monthSell.size()>4){
- for(int i=0;i<monthSell.size();i++){
- if(i<3){
- result.add(monthSell.get(i));
- } else{
- if(monthSell.get(i).getWaterUsage()!=null&&othersUsage!=null){
- othersUsage+=monthSell.get(i).getWaterUsage();
- }else if(monthSell.get(i).getWaterUsage()!=null){
- othersUsage=monthSell.get(i).getWaterUsage();
- }
- }
- }
- monthSellwaterDto.setPropertyName("其他用水");
- monthSellwaterDto.setWaterUsage(othersUsage);
- result.add(monthSellwaterDto);
- }else{
- result=monthSell;
- }
- return result;
- }
- /**
- * 查询近6个月总售水量
- *
- * @param companyOrgId
- * @return
- */
- @Override
- public List<MonthSellwaterDto> selectMonthSellTotal(Integer companyOrgId) {
- MonthSellwaterDto monthSellwaterDto=new MonthSellwaterDto();
- monthSellwaterDto.setCompanyOrgId(companyOrgId);
- LoginUser loginUser = UserUtil.getCurrentUser();
- monthSellwaterDto.setTenantId(loginUser.getTenantId());
- monthSellwaterDto.setProgramItems(loginUser.getProgramItemList());
- monthSellwaterDto.setUserType(loginUser.getType());
- //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
- monthSellwaterDto.setPermissonType(loginUser.getPermissonType());
- return revenueMapper.selectMonthSellTotal(monthSellwaterDto);
- }
- /**
- * 查询月营收情况
- *
- * @param companyOrgId
- * @return
- */
- @Override
- public List<MonthRevenueDto> selectMonthRevenue(Integer companyOrgId,Integer months) {
- MonthRevenueDto monthRevenueDto=new MonthRevenueDto();
- monthRevenueDto.setCompanyOrgId(companyOrgId);
- monthRevenueDto.setMonths(months);
- LoginUser loginUser = UserUtil.getCurrentUser();
- monthRevenueDto.setTenantId(loginUser.getTenantId());
- monthRevenueDto.setProgramItems(loginUser.getProgramItemList());
- monthRevenueDto.setUserType(loginUser.getType());
- //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
- monthRevenueDto.setPermissonType(loginUser.getPermissonType());
- return revenueMapper.selectMonthRevenue(monthRevenueDto);
- }
- /**
- * 查询本月各分公司的营收情况
- *
- * @return
- */
- @Override
- public List<MonthRevenueDto> selectCompanyRevenue() {
- MonthRevenueDto monthRevenueDto=new MonthRevenueDto();
- LoginUser loginUser = UserUtil.getCurrentUser();
- monthRevenueDto.setTenantId(loginUser.getTenantId());
- monthRevenueDto.setProgramItems(loginUser.getProgramItemList());
- monthRevenueDto.setUserType(loginUser.getType());
- //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
- monthRevenueDto.setPermissonType(loginUser.getPermissonType());
- return revenueMapper.selectCompanyRevenue(monthRevenueDto);
- }
- /**
- * wangbo
- * 查询前N个月的售水数据
- * @param companyOrgId
- * @param months
- * @return
- */
- @Override
- public List<MonthRevenueDto> selectOverviewRevenue(Integer companyOrgId,Integer months) {
- MonthRevenueDto monthRevenueDto=new MonthRevenueDto();
- monthRevenueDto.setCompanyOrgId(companyOrgId);
- monthRevenueDto.setMonths(months);
- LoginUser loginUser = UserUtil.getCurrentUser();
- monthRevenueDto.setTenantId(loginUser.getTenantId());
- monthRevenueDto.setProgramItems(loginUser.getProgramItemList());
- monthRevenueDto.setUserType(loginUser.getType());
- //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
- monthRevenueDto.setPermissonType(loginUser.getPermissonType());
- return revenueMapper.selectOverviewRevenue(monthRevenueDto);
- }
- /**
- * wangbo
- * 查询售水信息-按时间段
- * @param companyOrgId
- * @param startDate
- * @param endDate
- * @return
- */
- @Override
- public List<MonthRevenueDto> selectRevenueByDate(Integer companyOrgId,String startDate,String endDate) {
- MonthRevenueDto monthRevenueDto=new MonthRevenueDto();
- monthRevenueDto.setCompanyOrgId(companyOrgId);
- monthRevenueDto.setStartDate(startDate);
- monthRevenueDto.setEndDate(endDate);
- LoginUser loginUser = UserUtil.getCurrentUser();
- monthRevenueDto.setTenantId(loginUser.getTenantId());
- monthRevenueDto.setProgramItems(loginUser.getProgramItemList());
- monthRevenueDto.setUserType(loginUser.getType());
- //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
- monthRevenueDto.setPermissonType(loginUser.getPermissonType());
- return revenueMapper.selectRevenueByDate(monthRevenueDto);
- }
- /**
- * 查询是否当月有营收数据
- * @return
- */
- @Override
- public Integer isExistThisMonthRevenue(String tenantId) {
- return revenueMapper.isExistThisMonthRevenue(tenantId);
- }
- /**
- * 插入营收数据
- * @return
- */
- @Override
- public Integer insert(MonthRevenueEntity monthRevenueEntity) {
- return revenueMapper.insert(monthRevenueEntity);
- }
- /**
- * 修改营收数据
- * @return
- */
- @Override
- public Integer update(MonthRevenueEntity monthRevenueEntity) {
- return revenueMapper.update(monthRevenueEntity);
- }
- /**
- * 查询该租户一级公司id
- * @return
- */
- @Override
- public Integer selectCompanyIdByTenant(String tenantId) {
- return revenueMapper.selectCompanyIdByTenant(tenantId);
- }
- @Override
- public void syncMeterCount() {
- MeterCountDto meterCountDto = restTemplate.getForObject(meterRequestUrl, MeterCountDto.class);
- if(meterCountDto.getStatus()==0){
- for (MonthRevenueEntity monthRevenueEntity : meterCountDto.getData()) {
- //查询当月是否有数据 有就更新 没有就插入
- Integer count =revenueMapper.isExistThisMonthRevenue(monthRevenueEntity.getTenantId());
- if(count==0){
- Calendar thisMonthFirstDateCal = Calendar.getInstance();
- thisMonthFirstDateCal.set(Calendar.DAY_OF_MONTH, 1);
- monthRevenueEntity.setCollectDate(thisMonthFirstDateCal.getTime());
- monthRevenueEntity.setCompanyOrgId(revenueMapper.selectCompanyIdByTenant(monthRevenueEntity.getTenantId()));
- revenueMapper.insert(monthRevenueEntity);
- }else{
- revenueMapper.update(monthRevenueEntity);
- }
- }
- }
- }
- /**
- * 插入售水数据
- * @return
- */
- @Override
- public Integer insertSellWater(MonthSellwaterEntity monthSellwaterEntity) {
- return revenueMapper.insertSellWater(monthSellwaterEntity);
- }
- /**
- * 修改售水数据
- * @return
- */
- @Override
- public Integer updateSellWater(MonthSellwaterEntity monthSellwaterEntity) {
- return revenueMapper.updateSellWater(monthSellwaterEntity);
- }
- /**
- * 修改营业数据
- * @return
- */
- @Override
- public Integer updateRevenue(MonthRevenueEntity monthRevenueEntity) {
- return revenueMapper.updateRevenue(monthRevenueEntity);
- }
- /**
- * 查询月营收情况
- * @param monthRevenueDto 营业信息查询条件
- * @return
- */
- @Override
- public List<MonthRevenueDto> selectList(MonthRevenueDto monthRevenueDto){
- return revenueMapper.selectList(monthRevenueDto);
- }
- /**
- * 查询某月是否有营收数据
- * @return
- */
- @Override
- public Integer isExistMonthRevenue(Integer companyOrgId,String collectDateString,Integer id) {
- return revenueMapper.isExistMonthRevenue(companyOrgId,collectDateString,id);
- }
- }
|