package com.iailab.module.ansteel.power.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.iailab.framework.common.util.date.DateUtils;
|
import com.iailab.framework.common.util.object.ConvertUtils;
|
import com.iailab.framework.security.core.util.SecurityFrameworkUtils;
|
import com.iailab.module.ansteel.api.dto.PowerPriceDetDTO;
|
import com.iailab.module.ansteel.api.dto.PowerPriceMainDTO;
|
import com.iailab.module.ansteel.common.constant.CommonConstant;
|
import com.iailab.module.ansteel.power.dao.PowerPriceDetDao;
|
import com.iailab.module.ansteel.power.dao.PowerPriceMainDao;
|
import com.iailab.module.ansteel.power.entity.PowerPriceDetEntity;
|
import com.iailab.module.ansteel.power.entity.PowerPriceMainEntity;
|
import com.iailab.module.ansteel.power.service.PowerPriceDetService;
|
import com.iailab.module.ansteel.power.service.PowerPriceMainService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.ObjectUtils;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author lirm
|
* @since 1.0.0 2025-05-21
|
*/
|
@Slf4j
|
@Service
|
public class PowerPriceMainServiceImpl implements PowerPriceMainService {
|
|
@Resource
|
private PowerPriceMainDao powerPriceMainDao;
|
|
@Resource
|
private PowerPriceDetDao powerPriceDetDao;
|
|
@Resource
|
private PowerPriceDetService powerPriceDetService;
|
|
@Override
|
public List<PowerPriceMainDTO> list(Map<String, Object> params) {
|
PowerPriceMainEntity powerPriceMainEntity = new PowerPriceMainEntity();
|
List<PowerPriceMainEntity> entitylist = powerPriceMainDao.selectList(new QueryWrapper<>(powerPriceMainEntity).eq("status", CommonConstant.IS_ENABLE));
|
List<PowerPriceMainDTO> dtolist = ConvertUtils.sourceToTarget(entitylist, PowerPriceMainDTO.class);
|
dtolist.stream().map(item -> {
|
List<PowerPriceDetDTO> detList = powerPriceDetService.getByMainId(item.getId());
|
item.setDetList(detList);
|
return item;
|
}).collect(Collectors.toList());
|
return dtolist;
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public Boolean save(PowerPriceMainDTO mainDTO) {
|
if (ObjectUtils.isEmpty(mainDTO)) {
|
return null;
|
}
|
powerPriceMainDao.updateStatus();
|
|
if (!CollectionUtils.isEmpty(mainDTO.getDetList())) {
|
|
PowerPriceMainEntity powerPriceMainEntity = ConvertUtils.sourceToTarget(mainDTO, PowerPriceMainEntity.class);
|
powerPriceMainEntity.setCode(DateUtils.format(new Date(), "yyyyMMddHHmmss"));
|
powerPriceMainEntity.setStatus(CommonConstant.IS_ENABLE);
|
powerPriceMainEntity.setCreator(SecurityFrameworkUtils.getLoginUser().getId());
|
powerPriceMainEntity.setCreateDate(new Date());
|
powerPriceMainDao.insert(powerPriceMainEntity);
|
|
for (int i = 0; i < mainDTO.getDetList().size(); i++) {
|
PowerPriceDetEntity powerPriceDetEntity = ConvertUtils.sourceToTarget(mainDTO.getDetList().get(i), PowerPriceDetEntity.class);
|
powerPriceDetEntity.setMainId(powerPriceMainEntity.getId());
|
powerPriceDetEntity.setSort(i + 1);
|
powerPriceDetDao.insert(powerPriceDetEntity);
|
}
|
}
|
return true;
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public Boolean update(PowerPriceMainDTO mainDTO) {
|
if (!CollectionUtils.isEmpty(mainDTO.getDetList())) {
|
|
PowerPriceMainEntity powerPriceMainEntity = powerPriceMainDao.selectById(mainDTO.getId());
|
powerPriceMainEntity.setCreator(SecurityFrameworkUtils.getLoginUser().getId());
|
powerPriceMainEntity.setCreateDate(new Date());
|
powerPriceMainDao.updateById(powerPriceMainEntity);
|
|
QueryWrapper queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("main_id", powerPriceMainEntity.getId());
|
powerPriceDetDao.delete(queryWrapper);
|
|
for (int i = 0; i < mainDTO.getDetList().size(); i++) {
|
PowerPriceDetEntity powerPriceDetEntity = ConvertUtils.sourceToTarget(mainDTO.getDetList().get(i), PowerPriceDetEntity.class);
|
powerPriceDetEntity.setMainId(powerPriceMainEntity.getId());
|
powerPriceDetEntity.setSort(i + 1);
|
powerPriceDetDao.insert(powerPriceDetEntity);
|
}
|
}
|
return true;
|
}
|
}
|