package com.thhy.mobile.modules.biz.cultivated.service.impl; import com.thhy.general.common.BasicStatus; import com.thhy.general.config.SysUserInfo; import com.thhy.general.exception.BasicException; import com.thhy.general.utils.DeepCopyUtils; import com.thhy.general.utils.UserInfoUtils; import com.thhy.mobile.modules.biz.cultivated.entity.*; import com.thhy.mobile.modules.biz.cultivated.mapper.CultivatedDeviceDataMapper; import com.thhy.mobile.modules.biz.cultivated.mapper.CultivatedDeviceMapper; import com.thhy.mobile.modules.biz.cultivated.mapper.WaterCultivatedMapper; import com.thhy.mobile.modules.biz.cultivated.service.WaterCultivatedService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.Serializable; import java.util.Date; import java.util.List; import java.util.Map; /** * 服务实现类 * @author zhang_xiao_bo * @since 2023-05-11 14:45:24 */ @Service public class WaterCultivatedServiceImpl implements WaterCultivatedService { @Autowired private WaterCultivatedMapper waterCultivatedMapper; @Autowired private CultivatedDeviceDataMapper deviceDataMapper; @Autowired private CultivatedDeviceMapper deviceMapper; public WaterCultivated get(Serializable id){ return waterCultivatedMapper.queryById(id); } public List findList(WaterCultivated waterCultivated){ SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo(); if(waterCultivated==null)waterCultivated = new WaterCultivated(); waterCultivated.setCompanyId(userInfo.getCompanyId()); List culListVoList = waterCultivatedMapper.findList(waterCultivated); culListVoList.forEach(cl ->{ List temVoList = deviceDataMapper.deviceDataByCultivatedId(cl.getWaterCultivatedId()); cl.setTemList(temVoList); }); return culListVoList; } public List screenFindList(String token){ SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo(token); WaterCultivated waterCultivated = new WaterCultivated(); waterCultivated.setCompanyId(userInfo.getCompanyId()); List culListVoList = waterCultivatedMapper.findList(waterCultivated); culListVoList.forEach(cl ->{ List temVoList = deviceDataMapper.deviceDataByCultivatedId(cl.getWaterCultivatedId()); cl.setTemList(temVoList); }); return culListVoList; } /** * 增加和修改 * @param culDeviceDto */ @Transactional public void addWaterCultivated(CulDeviceDto culDeviceDto){ List deviceList = culDeviceDto.getDeviceList(); if(deviceList.size()<1){ throw new BasicException(BasicStatus.WATER_MISS_DEVICE); } WaterCultivated waterCultivated = new WaterCultivated(); DeepCopyUtils.copy(culDeviceDto,waterCultivated); SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo(); if(waterCultivated.getWaterCultivatedId() == null){ //增加操作 int count = deviceMapper.countByDevices(deviceList); if(count>0){ throw new BasicException(BasicStatus.DEVICE_IS_ALREAD_USE); } waterCultivated.setCompanyId(userInfo.getCompanyId()); waterCultivated.setCreateUser(userInfo.getUserId()); waterCultivatedMapper.insert(waterCultivated); }else{ //修改操作 waterCultivated.setUpdateUser(userInfo.getUserId()); waterCultivated.setUpdateTime(new Date()); waterCultivatedMapper.update(waterCultivated); deviceList.forEach(cd->{ List wcIds = deviceMapper.queryWCIDByDeviceId(cd.getDeviceId()); if(wcIds.size()>0){ if(!wcIds.get(0).equals(waterCultivated.getWaterCultivatedId())){ throw new BasicException(BasicStatus.DEVICE_IS_ALREAD_USE); } } }); deviceMapper.deleteByCultivatedId(waterCultivated.getWaterCultivatedId()); } deviceList.forEach(cd -> { cd.setWaterCultivatedId(waterCultivated.getWaterCultivatedId()); deviceMapper.insert(cd); }); } /** * 修改 * @param waterCultivated */ public void update(WaterCultivated waterCultivated){ waterCultivatedMapper.update(waterCultivated); } /** * 删除 * @param waterCultivatedId */ @Transactional public void delete(String waterCultivatedId){ int count = waterCultivatedMapper.countRecordByCulId(waterCultivatedId); if(count>0){ throw new BasicException(BasicStatus.WATER_IS_ALREADY_USE); } waterCultivatedMapper.deletelogic(waterCultivatedId); } @Override public List pulldown(WaterCultivated waterCultivated) { SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo(); if(waterCultivated==null)waterCultivated= new WaterCultivated(); waterCultivated.setCompanyId(userInfo.getCompanyId()); return waterCultivatedMapper.pulldown(waterCultivated); } @Override public List waterDeviceList(CulDeviceDto culDeviceDto) { return waterCultivatedMapper.waterDeviceList(culDeviceDto.getWaterCultivatedId()); } @Override public Map getH5WaterRecord(String num) { Map h5WaterRecord = waterCultivatedMapper.getH5WaterRecord(num); return h5WaterRecord; } }