doum
3 天以前 7ec3683c8e41460f4bb0bd3a6677198742313e2b
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalDataServiceImpl.java
@@ -1,32 +1,42 @@
package com.doumee.service.business.impl;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.YwElectricalData;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.YwElectricalDataMapper;
import com.doumee.service.business.YwElectricalDataService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.YwElectricalDataMapper;
import com.doumee.dao.business.model.YwElectrical;
import com.doumee.dao.business.model.YwElectricalData;
import com.doumee.dao.business.model.YwElectricalRoom;
import com.doumee.service.business.YwElectricalBizService;
import com.doumee.service.business.YwElectricalDataService;
import com.doumee.service.business.YwWorkDeskEnergyService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.doumee.core.model.LoginUserInfo;
import java.text.SimpleDateFormat;
import java.util.List;
/**
 * 电表抄表数据Service实现
 * @author doumee
 * @date 2026-05-20 14:59:07
 */
@Service
public class YwElectricalDataServiceImpl implements YwElectricalDataService {
    @Autowired
    private YwElectricalDataMapper ywElectricalDataMapper;
    @Autowired
    private YwElectricalBizService ywElectricalBizService;
    @Autowired
    private YwWorkDeskEnergyService ywWorkDeskEnergyService;
    @Override
    public Integer create(YwElectricalData ywElectricalData) {
@@ -38,34 +48,37 @@
    public void deleteById(Integer id) {
        ywElectricalDataMapper.deleteById(id);
    }
  @Override
    public void deleteByIdInBatch(List<Integer> ids ) {
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        for(Integer id :ids){
        for (Integer id : ids) {
            deleteById(id);
        }
    }
    @Override
    public void deleteById(Integer id, LoginUserInfo user) {
        ywElectricalDataMapper.deleteById(id);
    }
  @Override
    @Override
    public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
       for(Integer id :ids){
            deleteById(id,user);
        for (Integer id : ids) {
            deleteById(id, user);
        }
    }
    @Override
    public void delete(YwElectricalData ywElectricalData) {
        UpdateWrapper<YwElectricalData> deleteWrapper = new UpdateWrapper<>(ywElectricalData);
        ywElectricalDataMapper.delete(deleteWrapper);
    }
    @Override
    public void updateById(YwElectricalData ywElectricalData) {
@@ -77,7 +90,7 @@
        if (CollectionUtils.isEmpty(ywElectricalDatas)) {
            return;
        }
        for (YwElectricalData ywElectricalData: ywElectricalDatas) {
        for (YwElectricalData ywElectricalData : ywElectricalDatas) {
            this.updateById(ywElectricalData);
        }
    }
@@ -98,79 +111,80 @@
        QueryWrapper<YwElectricalData> wrapper = new QueryWrapper<>(ywElectricalData);
        return ywElectricalDataMapper.selectList(wrapper);
    }
    @Override
    public PageData<YwElectricalData> findPage(PageWrap<YwElectricalData> pageWrap) {
        IPage<YwElectricalData> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        YwElectricalData model = pageWrap.getModel() == null ? new YwElectricalData() : pageWrap.getModel();
        Utils.MP.blankToNull(model);
        MPJLambdaWrapper<YwElectricalData> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        queryWrapper.eq(pageWrap.getModel().getId() != null,YwElectricalData::getId, pageWrap.getModel().getId());
        queryWrapper.eq(pageWrap.getModel().getCreator() != null,YwElectricalData::getCreator, pageWrap.getModel().getCreator());
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.ge(YwElectricalData::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.le(YwElectricalData::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        queryWrapper.selectAll(YwElectricalData.class)
                .selectAs(YwElectrical::getName, YwElectricalData::getElectricalName)
                .selectAs(YwElectrical::getId, YwElectricalData::getElectricalId)
                .leftJoin(YwElectrical.class, on -> on
                        .eq(YwElectrical::getAddress, YwElectricalData::getAddress)
                        .eq(YwElectrical::getIsdeleted, Constants.ZERO))
                .eq(YwElectricalData::getIsdeleted, Constants.ZERO);
        if (StringUtils.isNotBlank(model.getMeterKeyword())) {
            String kw = model.getMeterKeyword().trim();
            queryWrapper.and(w -> w.like(YwElectricalData::getAddress, kw)
                    .or().like(YwElectricalData::getName, kw)
                    .or().like(YwElectrical::getName, kw));
        }
        queryWrapper.eq(pageWrap.getModel().getEditor() != null,YwElectricalData::getEditor, pageWrap.getModel().getEditor());
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.ge(YwElectricalData::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.le(YwElectricalData::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        if (model.getRoomId() != null) {
            queryWrapper.innerJoin(YwElectricalRoom.class, on -> on
                    .eq(YwElectricalRoom::getObjId, YwElectrical::getId)
                    .eq(YwElectricalRoom::getType, Constants.ZERO)
                    .eq(YwElectricalRoom::getIsdeleted, Constants.ZERO))
                    .eq(YwElectricalRoom::getRoomId, model.getRoomId());
        }
        queryWrapper.eq(pageWrap.getModel().getIsdeleted() != null,YwElectricalData::getIsdeleted, pageWrap.getModel().getIsdeleted());
        queryWrapper.eq(pageWrap.getModel().getRemark() != null,YwElectricalData::getRemark, pageWrap.getModel().getRemark());
        queryWrapper.eq(pageWrap.getModel().getDeviceId() != null,YwElectricalData::getDeviceId, pageWrap.getModel().getDeviceId());
        queryWrapper.eq(pageWrap.getModel().getAddTime() != null,YwElectricalData::getAddTime, pageWrap.getModel().getAddTime());
        queryWrapper.eq(pageWrap.getModel().getJsfs() != null,YwElectricalData::getJsfs, pageWrap.getModel().getJsfs());
        queryWrapper.eq(pageWrap.getModel().getFls() != null,YwElectricalData::getFls, pageWrap.getModel().getFls());
        queryWrapper.eq(pageWrap.getModel().getXs() != null,YwElectricalData::getXs, pageWrap.getModel().getXs());
        queryWrapper.eq(pageWrap.getModel().getZyje() != null,YwElectricalData::getZyje, pageWrap.getModel().getZyje());
        queryWrapper.eq(pageWrap.getModel().getYe() != null,YwElectricalData::getYe, pageWrap.getModel().getYe());
        queryWrapper.eq(pageWrap.getModel().getCountnum() != null,YwElectricalData::getCountnum, pageWrap.getModel().getCountnum());
        queryWrapper.eq(pageWrap.getModel().getDqdj() != null,YwElectricalData::getDqdj, pageWrap.getModel().getDqdj());
        queryWrapper.eq(pageWrap.getModel().getZhygzdl() != null,YwElectricalData::getZhygzdl, pageWrap.getModel().getZhygzdl());
        queryWrapper.eq(pageWrap.getModel().getZqyl() != null,YwElectricalData::getZqyl, pageWrap.getModel().getZqyl());
        queryWrapper.eq(pageWrap.getModel().getAxdl() != null,YwElectricalData::getAxdl, pageWrap.getModel().getAxdl());
        queryWrapper.eq(pageWrap.getModel().getBxdl() != null,YwElectricalData::getBxdl, pageWrap.getModel().getBxdl());
        queryWrapper.eq(pageWrap.getModel().getCxdl() != null,YwElectricalData::getCxdl, pageWrap.getModel().getCxdl());
        queryWrapper.eq(pageWrap.getModel().getAxdy() != null,YwElectricalData::getAxdy, pageWrap.getModel().getAxdy());
        queryWrapper.eq(pageWrap.getModel().getBxdy() != null,YwElectricalData::getBxdy, pageWrap.getModel().getBxdy());
        queryWrapper.eq(pageWrap.getModel().getCxdy() != null,YwElectricalData::getCxdy, pageWrap.getModel().getCxdy());
        queryWrapper.eq(pageWrap.getModel().getZyggl() != null,YwElectricalData::getZyggl, pageWrap.getModel().getZyggl());
        queryWrapper.eq(pageWrap.getModel().getAxyggl() != null,YwElectricalData::getAxyggl, pageWrap.getModel().getAxyggl());
        queryWrapper.eq(pageWrap.getModel().getBxyggl() != null,YwElectricalData::getBxyggl, pageWrap.getModel().getBxyggl());
        queryWrapper.eq(pageWrap.getModel().getCxyggl() != null,YwElectricalData::getCxyggl, pageWrap.getModel().getCxyggl());
        queryWrapper.eq(pageWrap.getModel().getZwggl() != null,YwElectricalData::getZwggl, pageWrap.getModel().getZwggl());
        queryWrapper.eq(pageWrap.getModel().getAxwggl() != null,YwElectricalData::getAxwggl, pageWrap.getModel().getAxwggl());
        queryWrapper.eq(pageWrap.getModel().getBxwggl() != null,YwElectricalData::getBxwggl, pageWrap.getModel().getBxwggl());
        queryWrapper.eq(pageWrap.getModel().getCxwggl() != null,YwElectricalData::getCxwggl, pageWrap.getModel().getCxwggl());
        queryWrapper.eq(pageWrap.getModel().getZszgl() != null,YwElectricalData::getZszgl, pageWrap.getModel().getZszgl());
        queryWrapper.eq(pageWrap.getModel().getAxszgl() != null,YwElectricalData::getAxszgl, pageWrap.getModel().getAxszgl());
        queryWrapper.eq(pageWrap.getModel().getBxszgl() != null,YwElectricalData::getBxszgl, pageWrap.getModel().getBxszgl());
        queryWrapper.eq(pageWrap.getModel().getCxszgl() != null,YwElectricalData::getCxszgl, pageWrap.getModel().getCxszgl());
        queryWrapper.eq(pageWrap.getModel().getZglys() != null,YwElectricalData::getZglys, pageWrap.getModel().getZglys());
        queryWrapper.eq(pageWrap.getModel().getAxglys() != null,YwElectricalData::getAxglys, pageWrap.getModel().getAxglys());
        queryWrapper.eq(pageWrap.getModel().getBxglys() != null,YwElectricalData::getBxglys, pageWrap.getModel().getBxglys());
        queryWrapper.eq(pageWrap.getModel().getPl() != null,YwElectricalData::getPl, pageWrap.getModel().getPl());
        queryWrapper.eq(pageWrap.getModel().getWd() != null,YwElectricalData::getWd, pageWrap.getModel().getWd());
        queryWrapper.eq(pageWrap.getModel().getDdyy() != null,YwElectricalData::getDdyy, pageWrap.getModel().getDdyy());
        queryWrapper.eq(pageWrap.getModel().getDbzt() != null,YwElectricalData::getDbzt, pageWrap.getModel().getDbzt());
        queryWrapper.eq(pageWrap.getModel().getDataId() != null,YwElectricalData::getDataId, pageWrap.getModel().getDataId());
        queryWrapper.eq(pageWrap.getModel().getConsume() != null,YwElectricalData::getConsume, pageWrap.getModel().getConsume());
        queryWrapper.eq(pageWrap.getModel().getCid() != null,YwElectricalData::getCid, pageWrap.getModel().getCid());
        queryWrapper.eq(pageWrap.getModel().getMid() != null,YwElectricalData::getMid, pageWrap.getModel().getMid());
        queryWrapper.eq(pageWrap.getModel().getAddress() != null,YwElectricalData::getAddress, pageWrap.getModel().getAddress());
        queryWrapper.eq(pageWrap.getModel().getUid() != null,YwElectricalData::getUid, pageWrap.getModel().getUid());
        queryWrapper.eq(pageWrap.getModel().getName() != null,YwElectricalData::getName, pageWrap.getModel().getName());
        queryWrapper.eq(pageWrap.getModel().getFid() != null,YwElectricalData::getFid, pageWrap.getModel().getFid());
        queryWrapper.eq(pageWrap.getModel().getData() != null,YwElectricalData::getData, pageWrap.getModel().getData());
        queryWrapper.eq(pageWrap.getModel().getDsp() != null,YwElectricalData::getDsp, pageWrap.getModel().getDsp());
        queryWrapper.eq(pageWrap.getModel().getRadio() != null,YwElectricalData::getRadio, pageWrap.getModel().getRadio());
         queryWrapper.orderByDesc(YwElectricalData::getId);
         IPage<YwElectricalData> result = ywElectricalDataMapper.selectJoinPage(page, YwElectricalData.class,queryWrapper);
         return PageData.from(result);
        if (model.getReadTimeBegin() != null) {
            String begin = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
                    .format(Utils.Date.getStart(model.getReadTimeBegin()));
            queryWrapper.and(w -> w.and(w1 -> w1.isNotNull(YwElectricalData::getAddTime)
                            .ne(YwElectricalData::getAddTime, "")
                            .ge(YwElectricalData::getAddTime, begin))
                    .or(w2 -> w2.and(w3 -> w3.isNull(YwElectricalData::getAddTime)
                                    .or().eq(YwElectricalData::getAddTime, ""))
                            .ge(YwElectricalData::getCreateDate, Utils.Date.getStart(model.getReadTimeBegin()))));
        }
        if (model.getReadTimeEnd() != null) {
            String end = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
                    .format(Utils.Date.getEnd(model.getReadTimeEnd()));
            queryWrapper.and(w -> w.and(w1 -> w1.isNotNull(YwElectricalData::getAddTime)
                            .ne(YwElectricalData::getAddTime, "")
                            .le(YwElectricalData::getAddTime, end))
                    .or(w2 -> w2.and(w3 -> w3.isNull(YwElectricalData::getAddTime)
                                    .or().eq(YwElectricalData::getAddTime, ""))
                            .le(YwElectricalData::getCreateDate, Utils.Date.getEnd(model.getReadTimeEnd()))));
        }
        queryWrapper.orderByDesc(YwElectricalData::getAddTime)
                .orderByDesc(YwElectricalData::getCreateDate)
                .orderByDesc(YwElectricalData::getId);
        IPage<YwElectricalData> result = ywElectricalDataMapper.selectJoinPage(page, YwElectricalData.class, queryWrapper);
        PageData<YwElectricalData> pageData = PageData.from(result);
        ywElectricalBizService.enrichDataList(pageData.getRecords());
        return pageData;
    }
    @Override
    public long count(YwElectricalData ywElectricalData) {
        QueryWrapper<YwElectricalData> wrapper = new QueryWrapper<>(ywElectricalData);
        return ywElectricalDataMapper.selectCount(wrapper);
    }
    @Override
    public String syncFromPlatform() {
        return ywElectricalBizService.syncMeterDataFromPlatform();
    }
    @Override
    public String syncFromPlatform(String readTimeBegin, String readTimeEnd) {
        String syncMsg = ywElectricalBizService.syncMeterDataFromPlatform(readTimeBegin, readTimeEnd);
        String statsMsg = ywWorkDeskEnergyService.refreshElectricalDailyStatsForRange(readTimeBegin, readTimeEnd);
        return syncMsg + ";" + statsMsg;
    }
}