From 051abca66db233f5dbde3f69aa706422e1ac9fd9 Mon Sep 17 00:00:00 2001 From: jiaosong <jiaosong6760@dingtalk.com> Date: 星期三, 18 十月 2023 16:41:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java | 91 +++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 86 insertions(+), 5 deletions(-) diff --git a/server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java index 95be646..f05ef39 100644 --- a/server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java +++ b/server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java @@ -1,20 +1,39 @@ package com.doumee.service.business.impl; +import com.doumee.biz.system.SystemDictDataBiz; +import com.doumee.core.constants.Constants; +import com.doumee.core.dingding.DingDingNotice; +import com.doumee.core.constants.Constants; +import com.doumee.core.constants.ResponseStatus; +import com.doumee.core.exception.BusinessException; +import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Utils; +import com.doumee.dao.business.LocksMapper; import com.doumee.dao.business.SitesMapper; +import com.doumee.dao.business.model.Locks; import com.doumee.dao.business.model.Sites; +import com.doumee.dao.business.web.request.SitesMonitorBikeDTO; +import com.doumee.dao.business.web.request.SitesMonitorDTO; import com.doumee.service.business.SitesService; 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 org.apache.commons.lang3.StringUtils; +import org.checkerframework.checker.units.qual.C; +import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; +import java.util.Date; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * 绔欑偣淇℃伅琛⊿ervice瀹炵幇 @@ -27,8 +46,35 @@ @Autowired private SitesMapper sitesMapper; + @Autowired + private LocksMapper locksMapper; + + @Autowired + private SystemDictDataBiz systemDictDataBiz; + @Override public String create(Sites sites) { + LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + + QueryWrapper<Sites> wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(Sites::getCode,sites.getCode()); + Integer count = sitesMapper.selectCount(wrapper); + if (count > 0){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"绔欑偣缂栧彿宸插瓨鍦�"); + } + Sites insert = new Sites(); + insert.setCreateDate(new Date()); + insert.setCreator(principal.getId()); + insert.setEditDate(new Date()); + insert.setEditor(principal.getId()); + insert.setIsdeleted(Constants.ZERO); + insert.setInfo(sites.getInfo()); + insert.setName(sites.getName()); + insert.setCode(sites.getCode()); + insert.setStatus(sites.getStatus()); + insert.setLockNum(sites.getLockNum()); + insert.setIp(sites.getIp()); sitesMapper.insert(sites); return sites.getId(); } @@ -54,7 +100,14 @@ @Override public void updateById(Sites sites) { - sitesMapper.updateById(sites); + LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + Sites update = new Sites(); + update.setCreateDate(new Date()); + update.setEditor(principal.getId()); + update.setName(sites.getName()); + update.setLockNum(sites.getLockNum()); + update.setIp(sites.getIp()); + sitesMapper.updateById(update); } @Override @@ -75,7 +128,7 @@ @Override public Sites findOne(Sites sites) { QueryWrapper<Sites> wrapper = new QueryWrapper<>(sites); - return sitesMapper.selectOne(wrapper); + return sitesMapper.selectOne(wrapper.last(" limit 1")); } @Override @@ -83,7 +136,7 @@ QueryWrapper<Sites> wrapper = new QueryWrapper<>(sites); return sitesMapper.selectList(wrapper); } - + @Override public PageData<Sites> findPage(PageWrap<Sites> pageWrap) { IPage<Sites> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); @@ -113,10 +166,10 @@ queryWrapper.lambda().eq(Sites::getInfo, pageWrap.getModel().getInfo()); } if (pageWrap.getModel().getName() != null) { - queryWrapper.lambda().eq(Sites::getName, pageWrap.getModel().getName()); + queryWrapper.lambda().like(Sites::getName, pageWrap.getModel().getName()); } if (pageWrap.getModel().getCode() != null) { - queryWrapper.lambda().eq(Sites::getCode, pageWrap.getModel().getCode()); + queryWrapper.lambda().like(Sites::getCode, pageWrap.getModel().getCode()); } if (pageWrap.getModel().getStatus() != null) { queryWrapper.lambda().eq(Sites::getStatus, pageWrap.getModel().getStatus()); @@ -145,4 +198,32 @@ QueryWrapper<Sites> wrapper = new QueryWrapper<>(sites); return sitesMapper.selectCount(wrapper); } + + @Override + public PageData<Sites> findSitesMonitorDTOPage(PageWrap<SitesMonitorDTO> pageWrap) { +// IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); + IPage<Sites> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); + QueryWrapper<Sites> queryWrapper = new QueryWrapper<>(); + Utils.MP.blankToNull(pageWrap.getModel()); + queryWrapper.select("*,(select count(r.id) from locks r where r.site_id = sites.id) as all_lock_num" + + ",(select count(r.bike_code) from locks r where r.site_id = sites.id and r.bike_code is null and r.bike_code !='' ) as bikeCount"); +// Page<SitesMonitorDTO> sitesMonitorDTO = sitesMapper.getSitesMonitorDTO(page, pageWrap.getModel().getCode(), pageWrap.getModel().getName()); + queryWrapper.lambda().like(StringUtils.isNotBlank(pageWrap.getModel().getCode()),Sites::getCode,pageWrap.getModel().getCode()); + queryWrapper.lambda().like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Sites::getCode,pageWrap.getModel().getName()); + queryWrapper.lambda().orderByAsc(Sites::getCode); + IPage<Sites> sitesMonitorDTO = sitesMapper.selectPage(page, queryWrapper); + + if (!CollectionUtils.isEmpty(sitesMonitorDTO.getRecords())){ + sitesMonitorDTO.getRecords().forEach(s->{ + s.setRate(new BigDecimal(s.getBikeCount()).divide(new BigDecimal(s.getAllLockNum()),BigDecimal.ROUND_UP).setScale(2)); + }); + } + + return PageData.from(sitesMonitorDTO); + } + + @Override + public void siteReservesNotice(String siteId) throws Exception { + + } } -- Gitblit v1.9.3