1
MrShi
2025-01-06 d7dca690cedd12e271f0ee0b9050679d73796f5c
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwAccountServiceImpl.java
@@ -1,20 +1,31 @@
package com.doumee.service.business.impl;
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.YwAccountMapper;
import com.doumee.dao.business.YwContractRevenueMapper;
import com.doumee.dao.business.dao.CompanyMapper;
import com.doumee.dao.business.model.Company;
import com.doumee.dao.business.model.YwAccount;
import com.doumee.dao.business.model.YwContractRevenue;
import com.doumee.dao.business.model.YwProject;
import com.doumee.service.business.YwAccountService;
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 com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
/**
@@ -27,16 +38,52 @@
    @Autowired
    private YwAccountMapper ywAccountMapper;
    @Autowired
    private CompanyMapper companyMapper;
    @Autowired
    private YwContractRevenueMapper ywContractRevenueMapper;
    @Override
    public Integer create(YwAccount ywAccount) {
        ywAccountMapper.insert(ywAccount);
        return ywAccount.getId();
    public Integer create(YwAccount model) {
        if(model.getCompanyId()==null){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择正确的公司信息");
        }
        Company ywProject = companyMapper.selectById(model.getCompanyId());
        if(ywProject ==null || Constants.equalsInteger(ywProject.getIsdeleted(),Constants.ONE)
                || !Constants.equalsInteger(ywProject.getType(),Constants.TWO)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择正确的公司信息!");
        }
        if(StringUtils.isNotBlank(model.getTitle())){
            if(ywAccountMapper.selectCount(new QueryWrapper<YwAccount>().lambda()
                    .eq(YwAccount::getTitle,model.getTitle())
                    .eq(YwAccount::getIsdeleted,Constants.ZERO)) >0){
                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "对不起,收支条目不能重复~");
            }
        }
        model.setCreator(model.getLoginUserInfo().getId());
        model.setIsdeleted(Constants.ZERO);
        model.setCreateDate(new Date());
        model.setStatus(Constants.ZERO);
        model.setEditDate(model.getCreateDate());
        model.setEditor(model.getCreator());
        ywAccountMapper.insert(model);
        return model.getId();
    }
    @Override
    public void deleteById(Integer id, LoginUserInfo user) {
        ywAccountMapper.deleteById(id);
        if(ywContractRevenueMapper.selectCount(new QueryWrapper<YwContractRevenue>().lambda().eq(YwContractRevenue::getAccountId,id))>Constants.ZERO){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前收支账户已关联业务,不可删除");
        }
        YwAccount model = new YwAccount();
        model.setId(id);
        model.setIsdeleted(Constants.ONE);
        model.setEditDate(model.getCreateDate());
        model.setEditor(model.getCreator());
        ywAccountMapper.updateById(model);
    }
    @Override
@@ -50,12 +97,33 @@
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        ywAccountMapper.deleteBatchIds(ids);
        for(Integer id : ids){
            this.deleteById(id,user);
        }
    }
    @Override
    public void updateById(YwAccount ywAccount) {
        ywAccountMapper.updateById(ywAccount);
    public void updateById(YwAccount model) {
        if(model.getCompanyId()==null){
        throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择正确的公司信息");
    }
        Company ywProject = companyMapper.selectById(model.getCompanyId());
        if(ywProject ==null || Constants.equalsInteger(ywProject.getIsdeleted(),Constants.ONE)
                || !Constants.equalsInteger(ywProject.getType(),Constants.TWO)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择正确的公司信息!");
        }
        if(StringUtils.isNotBlank(model.getTitle())){
            if(ywAccountMapper.selectCount(new QueryWrapper<YwAccount>().lambda()
                    .eq(YwAccount::getTitle,model.getTitle())
                    .ne(YwAccount::getId,model.getId())
                    .eq(YwAccount::getIsdeleted,Constants.ZERO)) >0){
                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "对不起,收支条目不能重复~");
            }
        }
        model.setEditDate(model.getCreateDate());
        model.setEditor(model.getCreator());
        ywAccountMapper.updateById(model);
    }
    @Override
@@ -88,54 +156,58 @@
    @Override
    public PageData<YwAccount> findPage(PageWrap<YwAccount> pageWrap) {
        IPage<YwAccount> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<YwAccount> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<YwAccount> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(YwAccount.class)
                        .selectAs(Company::getName,YwAccount::getCompanyName)
                                .leftJoin(Company.class,Company::getId,YwAccount::getCompanyId);
        pageWrap.getModel().setIsdeleted(Constants.ZERO);
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(YwAccount::getId, pageWrap.getModel().getId());
            queryWrapper.eq(YwAccount::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(YwAccount::getCreator, pageWrap.getModel().getCreator());
            queryWrapper.eq(YwAccount::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(YwAccount::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(YwAccount::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
            queryWrapper.ge(YwAccount::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.le(YwAccount::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(YwAccount::getEditor, pageWrap.getModel().getEditor());
            queryWrapper.eq(YwAccount::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(YwAccount::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(YwAccount::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
            queryWrapper.ge(YwAccount::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.le(YwAccount::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(YwAccount::getIsdeleted, pageWrap.getModel().getIsdeleted());
            queryWrapper.eq(YwAccount::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(YwAccount::getRemark, pageWrap.getModel().getRemark());
            queryWrapper.eq(YwAccount::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(YwAccount::getStatus, pageWrap.getModel().getStatus());
            queryWrapper.eq(YwAccount::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getTitle() != null) {
            queryWrapper.lambda().eq(YwAccount::getTitle, pageWrap.getModel().getTitle());
            queryWrapper.like(YwAccount::getTitle, pageWrap.getModel().getTitle());
        }
        if (pageWrap.getModel().getCompanyId() != null) {
            queryWrapper.lambda().eq(YwAccount::getCompanyId, pageWrap.getModel().getCompanyId());
            queryWrapper.eq(YwAccount::getCompanyId, pageWrap.getModel().getCompanyId());
        }
        if (pageWrap.getModel().getType() != null) {
            queryWrapper.lambda().eq(YwAccount::getType, pageWrap.getModel().getType());
            queryWrapper.eq(YwAccount::getType, pageWrap.getModel().getType());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(YwAccount::getName, pageWrap.getModel().getName());
            queryWrapper.eq(YwAccount::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getBankName() != null) {
            queryWrapper.lambda().eq(YwAccount::getBankName, pageWrap.getModel().getBankName());
            queryWrapper.eq(YwAccount::getBankName, pageWrap.getModel().getBankName());
        }
        if (pageWrap.getModel().getBankNo() != null) {
            queryWrapper.lambda().eq(YwAccount::getBankNo, pageWrap.getModel().getBankNo());
            queryWrapper.eq(YwAccount::getBankNo, pageWrap.getModel().getBankNo());
        }
        if (pageWrap.getModel().getBankAddr() != null) {
            queryWrapper.lambda().eq(YwAccount::getBankAddr, pageWrap.getModel().getBankAddr());
            queryWrapper.eq(YwAccount::getBankAddr, pageWrap.getModel().getBankAddr());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {