package com.zt.plat.module.base.api;

import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.module.api.BaseApi;
import com.zt.plat.module.api.dto.AccountDTO;
import com.zt.plat.module.api.dto.ElementDTO;
import com.zt.plat.module.api.dto.MaterialOtherDTO;
import com.zt.plat.module.base.controller.admin.base.vo.ElementPageReqVO;
import com.zt.plat.module.base.controller.admin.base.vo.ElementRespVO;
import com.zt.plat.module.base.dal.dataobject.base.ElementDO;
import com.zt.plat.module.base.service.base.AccountService;
import com.zt.plat.module.base.service.base.ElementService;
import com.zt.plat.module.base.service.base.MaterialOtherService;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

import static com.zt.plat.framework.common.pojo.CommonResult.success;

/**
 * ERP  Api 实现类
 *
 * @author ZT
 * @author jason
 */
@RestController
@Validated
public class BaseApiImpl implements BaseApi {

    @Resource
    private AccountService accountService;

    @Resource
    private MaterialOtherService materialOtherService;

    @Resource
    private ElementService elementService;

    @Override
    public List<AccountDTO> getAccountNoPage(AccountDTO respVO) {
        return accountService.getAccountNoPage(respVO);
    }

    @Override
    public List<MaterialOtherDTO> getMaterialOtherNoPage(MaterialOtherDTO respVO) {
        return materialOtherService.getMaterialOtherNoPage(respVO);
    }

    public CommonResult<List<ElementDTO>> getElementNoPage() {
        List<ElementDO> list = elementService.getElementNoPage();
        return success(BeanUtils.toBean(list, ElementDTO.class));
    }
}
