package com.doumee.service.business.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
import com.doumee.core.constants.ResponseStatus;
|
import com.doumee.core.exception.BusinessException;
|
import com.doumee.core.model.LoginUserInfo;
|
import com.doumee.core.model.PageData;
|
import com.doumee.core.model.PageWrap;
|
import com.doumee.core.utils.Constants;
|
import com.doumee.core.utils.Utils;
|
import com.doumee.dao.business.CompanyEconomicsMapper;
|
import com.doumee.dao.business.CompanyMapper;
|
import com.doumee.dao.business.model.Company;
|
import com.doumee.dao.business.model.CompanyEconomics;
|
import com.doumee.dao.system.vo.CompanyEconomicsVo;
|
import com.doumee.service.business.CompanyEconomicsService;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import org.apache.shiro.SecurityUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
|
import javax.xml.crypto.Data;
|
import java.time.LocalDate;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Objects;
|
import java.util.stream.Collectors;
|
|
/**
|
* 企业变更信息记录表Service实现
|
* @author 江蹄蹄
|
* @date 2023/02/15 08:55
|
*/
|
@Service
|
public class CompanyEconomicsServiceImpl implements CompanyEconomicsService {
|
|
@Autowired
|
private CompanyEconomicsMapper companyEconomicsMapper;
|
|
@Autowired
|
private CompanyMapper companyMapper;
|
|
@Override
|
public Integer create(CompanyEconomics companyEconomics) {
|
|
LoginUserInfo principals = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
|
Date now = new Date();
|
companyEconomics.setCreator(principals.getId());
|
companyEconomics.setCreateDate(now);
|
companyEconomics.setEditor(principals.getId());
|
companyEconomics.setEditDate(now);
|
companyEconomics.setIsdeleted(Constants.ZERO);
|
companyEconomicsMapper.insert(companyEconomics);
|
return companyEconomics.getId();
|
}
|
|
@Override
|
public void deleteById(Integer id) {
|
companyEconomicsMapper.deleteById(id);
|
}
|
|
@Override
|
public void delete(CompanyEconomics companyEconomics) {
|
UpdateWrapper<CompanyEconomics> deleteWrapper = new UpdateWrapper<>(companyEconomics);
|
companyEconomicsMapper.delete(deleteWrapper);
|
}
|
|
@Override
|
public void deleteByIdInBatch(List<Integer> ids) {
|
if (CollectionUtils.isEmpty(ids)) {
|
return;
|
}
|
companyEconomicsMapper.deleteBatchIds(ids);
|
}
|
|
@Override
|
public void createOrUpdate(CompanyEconomics companyEconomics) {
|
|
LoginUserInfo principals = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
|
if (Objects.isNull(companyEconomics.getId())){
|
companyEconomics.setCompanyId(companyEconomics.getCompanyId());
|
create(companyEconomics);
|
}
|
Date now = new Date();
|
CompanyEconomics economics = new CompanyEconomics();
|
if (Objects.isNull(companyEconomics.getId())){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"企业经济指标不存在");
|
}
|
if (Objects.isNull(companyEconomics.getIncome())){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"营业收入不允许为空");
|
}
|
if (Objects.isNull(companyEconomics.getProfit())){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"利润总额不允许为空");
|
}
|
UpdateWrapper<CompanyEconomics> wrapper = new UpdateWrapper();
|
wrapper.lambda().set(CompanyEconomics::getAssets,companyEconomics.getAssets())
|
.set(CompanyEconomics::getIncome,companyEconomics.getIncome())
|
.set(CompanyEconomics::getRatio,companyEconomics.getRatio())
|
.set(CompanyEconomics::getDevelop,companyEconomics.getDevelop())
|
.set(CompanyEconomics::getProfit,companyEconomics.getProfit())
|
.set(CompanyEconomics::getTaxes,companyEconomics.getTaxes())
|
.set(CompanyEconomics::getEmployee,companyEconomics.getEmployee())
|
.set(CompanyEconomics::getEditor,principals.getId())
|
.set(CompanyEconomics::getEditDate,now)
|
.eq(CompanyEconomics::getId,companyEconomics.getId());
|
// update.setAssets();
|
// update.setIncome(companyEconomics.getIncome());
|
// update.setRatio(companyEconomics.getRatio());
|
// update.setDevelop(companyEconomics.getDevelop());
|
// update.setProfit(companyEconomics.getProfit());
|
// update.setTaxes(companyEconomics.getTaxes());
|
// update.setEmployee(companyEconomics.getEmployee());
|
// update.setEditor(principals.getId());
|
// update.setEditDate(now);
|
companyEconomicsMapper.update(economics,wrapper);
|
}
|
|
@Override
|
public void updateByIdInBatch(List<CompanyEconomics> companyEconomicss) {
|
if (CollectionUtils.isEmpty(companyEconomicss)) {
|
return;
|
}
|
for (CompanyEconomics companyEconomics: companyEconomicss) {
|
this.createOrUpdate(companyEconomics);
|
}
|
}
|
|
@Override
|
public CompanyEconomics findById(Integer id) {
|
return companyEconomicsMapper.selectById(id);
|
}
|
|
@Override
|
public CompanyEconomics findOne(CompanyEconomics companyEconomics) {
|
QueryWrapper<CompanyEconomics> wrapper = new QueryWrapper<>(companyEconomics);
|
return companyEconomicsMapper.selectOne(wrapper.last("limit 1"));
|
}
|
|
@Override
|
public List<CompanyEconomics> findList(CompanyEconomics companyEconomics) {
|
QueryWrapper<CompanyEconomics> wrapper = new QueryWrapper<>(companyEconomics);
|
return companyEconomicsMapper.selectList(wrapper);
|
}
|
|
@Override
|
public PageData<CompanyEconomics> findPage(PageWrap<CompanyEconomics> pageWrap) {
|
IPage<CompanyEconomics> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
|
QueryWrapper<CompanyEconomics> queryWrapper = new QueryWrapper<>();
|
Utils.MP.blankToNull(pageWrap.getModel());
|
if (pageWrap.getModel().getId() != null) {
|
queryWrapper.lambda().eq(CompanyEconomics::getId, pageWrap.getModel().getId());
|
}
|
|
if (pageWrap.getModel().getCreator() != null) {
|
queryWrapper.lambda().eq(CompanyEconomics::getCreator, pageWrap.getModel().getCreator());
|
}
|
if (pageWrap.getModel().getCreateDate() != null) {
|
queryWrapper.lambda().ge(CompanyEconomics::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
|
queryWrapper.lambda().le(CompanyEconomics::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
|
}
|
if (pageWrap.getModel().getEditor() != null) {
|
queryWrapper.lambda().eq(CompanyEconomics::getEditor, pageWrap.getModel().getEditor());
|
}
|
if (pageWrap.getModel().getEditDate() != null) {
|
queryWrapper.lambda().ge(CompanyEconomics::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
|
queryWrapper.lambda().le(CompanyEconomics::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
|
}
|
if (pageWrap.getModel().getIsdeleted() != null) {
|
queryWrapper.lambda().eq(CompanyEconomics::getIsdeleted, pageWrap.getModel().getIsdeleted());
|
}
|
if (pageWrap.getModel().getRemark() != null) {
|
queryWrapper.lambda().eq(CompanyEconomics::getRemark, pageWrap.getModel().getRemark());
|
}
|
if (pageWrap.getModel().getCompanyId() != null) {
|
queryWrapper.lambda().eq(CompanyEconomics::getCompanyId, pageWrap.getModel().getCompanyId());
|
}
|
if (pageWrap.getModel().getYears() != null) {
|
queryWrapper.lambda().eq(CompanyEconomics::getYears, pageWrap.getModel().getYears());
|
}
|
if (pageWrap.getModel().getAssets() != null) {
|
queryWrapper.lambda().eq(CompanyEconomics::getAssets, pageWrap.getModel().getAssets());
|
}
|
if (pageWrap.getModel().getIncome() != null) {
|
queryWrapper.lambda().eq(CompanyEconomics::getIncome, pageWrap.getModel().getIncome());
|
}
|
if (pageWrap.getModel().getRatio() != null) {
|
queryWrapper.lambda().eq(CompanyEconomics::getRatio, pageWrap.getModel().getRatio());
|
}
|
if (pageWrap.getModel().getDevelop() != null) {
|
queryWrapper.lambda().eq(CompanyEconomics::getDevelop, pageWrap.getModel().getDevelop());
|
}
|
if (pageWrap.getModel().getProfit() != null) {
|
queryWrapper.lambda().eq(CompanyEconomics::getProfit, pageWrap.getModel().getProfit());
|
}
|
if (pageWrap.getModel().getTaxes() != null) {
|
queryWrapper.lambda().eq(CompanyEconomics::getTaxes, pageWrap.getModel().getTaxes());
|
}
|
if (pageWrap.getModel().getEmployee() != null) {
|
queryWrapper.lambda().eq(CompanyEconomics::getEmployee, pageWrap.getModel().getEmployee());
|
}
|
for(PageWrap.SortData sortData: pageWrap.getSorts()) {
|
if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
|
queryWrapper.orderByDesc(sortData.getProperty());
|
} else {
|
queryWrapper.orderByAsc(sortData.getProperty());
|
}
|
}
|
return PageData.from(companyEconomicsMapper.selectPage(page, queryWrapper));
|
}
|
|
@Override
|
public long count(CompanyEconomics companyEconomics) {
|
QueryWrapper<CompanyEconomics> wrapper = new QueryWrapper<>(companyEconomics);
|
return companyEconomicsMapper.selectCount(wrapper);
|
}
|
|
@Override
|
public List<CompanyEconomics> findLastThreeCompanyEconomics(Integer companyId) {
|
|
//查询经三年经济指标
|
CompanyEconomics companyEconomics = new CompanyEconomics();
|
companyEconomics.setIsdeleted(Constants.ZERO);
|
companyEconomics.setCompanyId(companyId);
|
Wrapper<CompanyEconomics> wrapper = new QueryWrapper<>(companyEconomics)
|
.apply(" YEARS >= year(now())-3 ")
|
.groupBy("YEARS")
|
.orderByAsc("YEARS");
|
List<CompanyEconomics> list = companyEconomicsMapper.selectList(wrapper);
|
|
if (CollectionUtils.isEmpty(list)){
|
list = new ArrayList<>(3);
|
int year = LocalDate.now().getYear() - 4;
|
for (int i = 0; i < 3;i++) {
|
CompanyEconomics economics = new CompanyEconomics();
|
economics.setYears(year+=1);
|
list.add(economics);
|
}
|
}else if (list.size() < 3){
|
int year = LocalDate.now().getYear();
|
for (int i = 0; i < 3-list.size();i++) {
|
CompanyEconomics economics = new CompanyEconomics();
|
economics.setYears(year-=1);
|
list.add(economics);
|
}
|
}
|
return list;
|
}
|
}
|