package com.tofly.feesapi.bmgl.service.impl;

import com.tofly.feesapi.bmgl.entity.BmSj;
import com.tofly.feesapi.bmgl.entity.BmSjls;
import com.tofly.feesapi.bmgl.entity.vo.BmSjlsSelect;
import com.tofly.feesapi.bmgl.entity.vo.BmSjlsView;
import com.tofly.feesapi.bmgl.mapper.BmSjlsMapper;
import com.tofly.feesapi.bmgl.service.IBmSjlsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tofly.feesapi.common.core.dto.PageDto;
import com.tofly.feesapi.common.core.vo.PageResult;
import com.tofly.feesapi.common.exception.FeesErrorCode;
import com.tofly.feesapi.common.exception.FeesException;

import com.tofly.feesapi.xtgl.service.ISysGdcsbService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author decai
 * @since 2024-02-01
 */
@Service
public class BmSjlsServiceImpl extends ServiceImpl<BmSjlsMapper, BmSjls> implements IBmSjlsService {

    @Autowired
    private ISysGdcsbService gdcsbService;

    @Override
    public void save(BmSj bmSj) {
        BmSjls sjls = new BmSjls();
        String cwrq = gdcsbService.selectCwrq();
        BeanUtils.copyProperties(bmSj, sjls);
        sjls.setCwrq(cwrq);
        this.save(sjls);
    }

    @Override
    public PageResult<BmSjlsSelect> getPage(PageDto pageDto, String code) {
        PageDto<BmSjlsSelect> page = this.baseMapper.getPage(pageDto, code);
        return page.toVo();
    }

    @Override
    public BmSjlsView getViewById(String id) {
        if (StringUtils.isEmpty(id)) throw new FeesException("水价编码历史ID不能为空", FeesErrorCode.BUSINESS_ERROR);
        BmSjls bmSjls = this.getById(id);
        if (bmSjls == null)
            throw new FeesException(String.format("水价编码历史(%s)不存在", id), FeesErrorCode.BUSINESS_ERROR);
        BmSjlsView view = new BmSjlsView();
        BeanUtils.copyProperties(bmSjls, view);
        return view;
    }

//    private String createHjtsj(BmSjSelectDto sj) {
//        String jtbz = sj.getJtbz();
//        if ("0".equals(jtbz)) {
//            return String.format("%.2f", sj.getSj());
//        } else {
//            List<String> jts = new ArrayList<>();
//            if (sj.getJt1Zs() != null && sj.getJt1Zs().compareTo(BigDecimal.ZERO) > 0) {
//                jts.add(String.format("阶梯一: 单价一(%.2f) 水量(0~%.0f)", sj.getJt1Sj(), sj.getJt1Zs()));
//            }
//            if (sj.getJt2Zs() != null && sj.getJt2Zs().compareTo(BigDecimal.ZERO) > 0) {
//                jts.add(String.format("阶梯二: 单价一(%.2f) 水量(%.0f~%.0f)", sj.getJt2Sj(), sj.getJt1Zs(), sj.getJt2Zs()));
//            }
//            if (sj.getJt3Zs() != null && sj.getJt3Zs().compareTo(BigDecimal.ZERO) > 0) {
//                jts.add(String.format("阶梯三: 单价一(%.2f) 水量(%.0f~%.0f)", sj.getJt3Sj(), sj.getJt2Zs(), sj.getJt3Zs()));
//            }
//            if (sj.getJt4Zs() != null && sj.getJt4Zs().compareTo(BigDecimal.ZERO) > 0) {
//                jts.add(String.format("阶梯四: 单价一(%.2f) 水量(%.0f~%.0f)", sj.getJt4Sj(), sj.getJt3Zs(), sj.getJt4Zs()));
//            }
//            return String.join("<br/>", jts);
//        }
//    }
}
