RevenueConfService.java 4.82 KB
Newer Older
eddie.woo's avatar
eddie.woo committed
1 2
package pwc.taxtech.atms.service.impl;

eddie.woo's avatar
eddie.woo committed
3
import com.github.pagehelper.Page;
eddie.woo's avatar
eddie.woo committed
4
import com.github.pagehelper.PageHelper;
eddie.woo's avatar
eddie.woo committed
5 6
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections.CollectionUtils;
eddie.woo's avatar
eddie.woo committed
7
import org.apache.commons.lang3.StringUtils;
eddie.woo's avatar
eddie.woo committed
8
import org.springframework.stereotype.Service;
eddie.woo's avatar
eddie.woo committed
9
import pwc.taxtech.atms.constant.enums.RevenueConfEnum;
eddie.woo's avatar
eddie.woo committed
10
import pwc.taxtech.atms.dpo.OrgSelectDto;
Cheng C Yang's avatar
Cheng C Yang committed
11
import pwc.taxtech.atms.dto.ApiResultDto;
eddie.woo's avatar
eddie.woo committed
12
import pwc.taxtech.atms.dto.revenuconf.RevConfAddDto;
eddie.woo's avatar
eddie.woo committed
13
import pwc.taxtech.atms.dto.revenuconf.RevenueConfParam;
eddie.woo's avatar
eddie.woo committed
14
import pwc.taxtech.atms.dto.revenuconf.RevenueConfResult;
eddie.woo's avatar
eddie.woo committed
15
import pwc.taxtech.atms.vat.dao.RevenueConfigMapper;
eddie.woo's avatar
eddie.woo committed
16 17
import pwc.taxtech.atms.vat.entity.RevenueConfig;
import pwc.taxtech.atms.vat.entity.RevenueConfigExample;
eddie.woo's avatar
eddie.woo committed
18 19

import javax.annotation.Resource;
eddie.woo's avatar
eddie.woo committed
20 21
import java.util.List;
import java.util.stream.Collectors;
eddie.woo's avatar
eddie.woo committed
22 23 24 25 26 27

@Service
public class RevenueConfService extends BaseService {

    @Resource
    private RevenueConfigMapper revenueConfigMapper;
eddie.woo's avatar
eddie.woo committed
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
    @Resource
    private OrganizationServiceImpl organizationService;

    /**
     * 分页查询可查看的配置信息
     *
     * @param param RevenueConfParam
     * @return PageInfo
     */
    public PageInfo<RevenueConfResult> queryPage(RevenueConfParam param) {
        List<OrgSelectDto> orgDtoList = organizationService.getMyOrgList();
        if (CollectionUtils.isEmpty(orgDtoList)) {
            return new PageInfo<>();
        }
        Page page = PageHelper.startPage(param.getPageInfo().getPageIndex(), param.getPageInfo().getPageSize());
        RevenueConfigExample example = new RevenueConfigExample();
        example.createCriteria().andOrgIdIn(orgDtoList.stream().map(OrgSelectDto::getId).collect(Collectors.toList()));
eddie.woo's avatar
eddie.woo committed
45
        example.setOrderByClause("org_id");
eddie.woo's avatar
eddie.woo committed
46 47 48 49 50
        PageInfo<RevenueConfResult> pageInfo = new PageInfo<>(revenueConfigMapper.selectByExample(example).stream()
                .map(o -> beanUtil.copyProperties(o, new RevenueConfResult())).collect(Collectors.toList()));
        pageInfo.setTotal(page.getTotal());
        return pageInfo;
    }
eddie.woo's avatar
eddie.woo committed
51

chase's avatar
chase committed
52 53 54 55
    public List<RevenueConfResult> queryAll(RevenueConfParam param) {
        RevenueConfigExample example = new RevenueConfigExample();
        example.createCriteria().andOrgIdEqualTo(param.getOrgId()).andStartDateLessThanOrEqualTo(param.getStartDate()).andEndDateGreaterThanOrEqualTo(param.getEndDate());
        return revenueConfigMapper.selectByExample(example).stream()
eddie.woo's avatar
eddie.woo committed
56
                .map(o -> beanUtil.copyProperties(o, new RevenueConfResult())).collect(Collectors.toList());
chase's avatar
chase committed
57
    }
eddie.woo's avatar
eddie.woo committed
58

eddie.woo's avatar
eddie.woo committed
59 60 61 62 63 64 65 66
    /**
     * 新增配置
     *
     * @param config RevenueConfig
     */
    public void addConfig(RevenueConfig config) {
        //todo 重复校验
        config.setId(idService.nextId());
eddie.woo's avatar
eddie.woo committed
67
        revenueConfigMapper.insertSelective(parseEntity(config));
eddie.woo's avatar
eddie.woo committed
68
    }
eddie.woo's avatar
eddie.woo committed
69

eddie.woo's avatar
eddie.woo committed
70 71 72 73 74
    /**
     * 前台批量新增
     *
     * @param addDto RevConfAddDto
     */
Cheng C Yang's avatar
Cheng C Yang committed
75 76 77 78 79 80 81 82 83 84 85 86
    public ApiResultDto addConfig(RevConfAddDto addDto) {


        RevenueConfigExample revenueConfigExample = new RevenueConfigExample();
        revenueConfigExample.createCriteria().andNameEqualTo(addDto.getName());
        List<RevenueConfig> list = revenueConfigMapper.selectByExample(revenueConfigExample);
        if (list.size() > 0) {
            ApiResultDto apiResultDto = ApiResultDto.success();
            apiResultDto.setMessage("DuplicateName");
            return apiResultDto;
        }

eddie.woo's avatar
eddie.woo committed
87 88 89 90
        if (!CollectionUtils.isEmpty(addDto.getOrgList())) {
            addDto.getOrgList().forEach(id -> {
                addDto.setId(idService.nextId());
                addDto.setOrgId(id);
eddie.woo's avatar
eddie.woo committed
91
                revenueConfigMapper.insertSelective(parseEntity(addDto));
eddie.woo's avatar
eddie.woo committed
92
            });
Cheng C Yang's avatar
Cheng C Yang committed
93
            return ApiResultDto.success();
eddie.woo's avatar
eddie.woo committed
94
        }
Cheng C Yang's avatar
Cheng C Yang committed
95 96

        return ApiResultDto.fail();
eddie.woo's avatar
eddie.woo committed
97
    }
eddie.woo's avatar
eddie.woo committed
98 99 100 101 102 103 104 105

    /**
     * 更新配置
     *
     * @param config RevenueConfig
     */
    public void updateConfig(RevenueConfig config) {
        //todo 重复校验
eddie.woo's avatar
eddie.woo committed
106 107 108
        revenueConfigMapper.updateByPrimaryKeySelective(parseEntity(config));
    }

eddie.woo's avatar
eddie.woo committed
109 110 111 112 113 114
    public void delConfig(List<Long> idList) {
        if (!CollectionUtils.isEmpty(idList)) {
            idList.forEach(id -> revenueConfigMapper.deleteByPrimaryKey(id));
        }
    }

eddie.woo's avatar
eddie.woo committed
115 116 117 118 119 120 121 122 123 124 125 126 127
    private RevenueConfig parseEntity(RevenueConfig config) {
        if (config.getAccountType() != RevenueConfEnum.AccountType.Account.getCode().intValue()) {
            config.setTbSegment3(StringUtils.EMPTY);
            config.setTbSegment5(StringUtils.EMPTY);
            config.setTbSegment6(StringUtils.EMPTY);
        }
        if (config.getTaxBase() != RevenueConfEnum.TaxBase.Period_Cr.getCode().intValue()) {
            config.setBaseCrCode(StringUtils.EMPTY);
        }
        if (config.getTaxBase() != RevenueConfEnum.TaxBase.Period_Dr.getCode().intValue()) {
            config.setBaseDrCode(StringUtils.EMPTY);
        }
        return config;
eddie.woo's avatar
eddie.woo committed
128 129
    }

eddie.woo's avatar
eddie.woo committed
130
}