From 83822a2574fa4db98688d7e2915f5631ec4a46ca Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 27 十一月 2024 17:59:26 +0800
Subject: [PATCH] 开发更新
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java | 338 ++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 255 insertions(+), 83 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
index 2b4e432..6f532e1 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
@@ -1,20 +1,36 @@
package com.doumee.service.business.impl;
+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.Constants;
+import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
+import com.doumee.core.utils.Week;
+import com.doumee.core.utils.redis.RedisUtil;
+import com.doumee.dao.business.YwLinePointMapper;
import com.doumee.dao.business.YwPatrolSchemeMapper;
-import com.doumee.dao.business.model.YwPatrolScheme;
+import com.doumee.dao.business.YwPatrolTaskMapper;
+import com.doumee.dao.business.YwPatrolTaskRecordMapper;
+import com.doumee.dao.business.model.*;
+import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.YwPatrolSchemeService;
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.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* 杩愮淮宸℃璁″垝淇℃伅琛⊿ervice瀹炵幇
@@ -26,15 +42,151 @@
@Autowired
private YwPatrolSchemeMapper ywPatrolSchemeMapper;
+ @Autowired
+ private YwPatrolTaskMapper ywPatrolTaskMapper;
+ @Autowired
+ private YwLinePointMapper ywLinePointMapper;
+ @Autowired
+ private YwPatrolTaskRecordMapper ywPatrolTaskRecordMapper;
+ @Autowired
+ private RedisTemplate<String, Object> redisTemplate;
@Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
public Integer create(YwPatrolScheme ywPatrolScheme) {
+ if(Objects.isNull(ywPatrolScheme)
+ || StringUtils.isBlank(ywPatrolScheme.getTitle())
+ ||Objects.isNull(ywPatrolScheme.getLineId())
+ ||StringUtils.isBlank(ywPatrolScheme.getUserIds())
+ ||Objects.isNull(ywPatrolScheme.getStartDate())
+ ||Objects.isNull(ywPatrolScheme.getEndDate())
+ ||Objects.isNull(ywPatrolScheme.getCircleType())
+ ||StringUtils.isBlank(ywPatrolScheme.getStartTime())
+ ||StringUtils.isBlank(ywPatrolScheme.getEndTime())
+ || (!Constants.equalsInteger(ywPatrolScheme.getCircleType(),Constants.ZERO) &&StringUtils.isBlank(ywPatrolScheme.getCircleDays()))
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ LoginUserInfo loginUserInfo = ywPatrolScheme.getLoginUserInfo();
+ ywPatrolScheme.setCreateDate(new Date());
+ ywPatrolScheme.setCreator(loginUserInfo.getId());
+ ywPatrolScheme.setIsdeleted(Constants.ZERO);
+ ywPatrolScheme.setStatus(Constants.ZERO);
+ ywPatrolScheme.setCode(this.getNextCode());
ywPatrolSchemeMapper.insert(ywPatrolScheme);
+
+ this.createThreeDaysData(ywPatrolScheme);
return ywPatrolScheme.getId();
}
+ public synchronized String getNextCode(){
+ String prefix = "P";
+ Integer countNum = RedisUtil.getObject(redisTemplate,Constants.RedisKeys.PATROL_SCHEME_CODE_KEY,Integer.class);
+ countNum = Constants.formatIntegerNum(countNum)+1;
+ //鏇存柊缂撳瓨
+ RedisUtil.addObject(redisTemplate,Constants.RedisKeys.PATROL_SCHEME_CODE_KEY,countNum);
+ String nextIndex =Integer.toString( countNum );
+ return prefix + StringUtils.leftPad(nextIndex,4,"0");
+ }
+
+
+
+ public void createThreeDaysData(YwPatrolScheme ywPatrolScheme){
+ //寰幆鐢熸垚涓夊ぉ鍐呯殑鏁版嵁
+ for (int i = 0; i < 3; i++) {
+ Date schemeDate = DateUtil.getXDayAfterDate(new Date(),i);
+ this.createTask(schemeDate,ywPatrolScheme);
+ }
+ }
+
+ /**
+ * 鏍规嵁鏃ユ湡鐢熸垚浠诲姟
+ * @param schemeDate
+ * @param ywPatrolScheme
+ */
+ public void createTask(Date schemeDate,YwPatrolScheme ywPatrolScheme){
+ if(ywPatrolScheme.getStartDate().getTime() > schemeDate.getTime()
+ || ywPatrolScheme.getEndDate().getTime() < schemeDate.getTime() ){
+ return;
+ }
+ if(Constants.equalsInteger(ywPatrolScheme.getCircleType(),Constants.ONE)){
+ //姣忓懆鏍规嵁鏃ユ湡鐢熸垚 鏍规嵁鏃ユ湡鑾峰彇鏄懆鍑�
+ Week week = DateUtil.getWeek(schemeDate);
+ if(Objects.isNull(week)){
+ return;
+ }
+ List<String> weeks = Arrays.asList(ywPatrolScheme.getCircleDays().split(","));
+ String weekStr = weeks.stream().filter(i->Constants.equalsInteger(Integer.valueOf(i),week.getNumber())).findFirst().get();
+ if(StringUtils.isBlank(weekStr)){
+ return;
+ }
+ }else{
+ //姣忔湀鏍规嵁鏃ユ湡鐢熸垚 鏍规嵁鏃ユ湡鑾峰彇鏄摢澶�
+ List<String> days = Arrays.asList(ywPatrolScheme.getCircleDays().split(","));
+ String dayStr = DateUtil.getFomartDate(schemeDate,"dd");
+ Optional<String> optional = days.stream().filter(i->StringUtils.equals(i,dayStr)).findAny();
+ if(Objects.isNull(optional)){
+ return;
+ }
+ }
+ String schemeDateStr = DateUtil.getDate(schemeDate,"yyyy-MM-dd");
+ //鏌ヨ褰撳ぉ鏄惁鐢熸垚杩囨暟鎹�
+ if(ywPatrolTaskMapper.selectCount(new QueryWrapper<YwPatrolTask>().lambda().eq(YwPatrolTask::getSchemeId,ywPatrolScheme.getId()).like(YwPatrolTask::getStartDate,schemeDateStr))>Constants.ZERO){
+ return;
+ };
+ YwPatrolTask ywPatrolTaskForCodeSn = ywPatrolTaskMapper.selectOne(new MPJLambdaWrapper<YwPatrolTask>()
+ .select(" ifnull( max(replace(code,'"+ywPatrolScheme.getCode()+"-','')),0) AS codeSn ")
+ .eq(YwPatrolTask::getSchemeId,ywPatrolScheme.getId())
+ .orderByDesc( YwPatrolTask::getId)
+ .last(" limit 1 ")
+ );
+ Integer codeSn = ywPatrolTaskForCodeSn.getCodeSn();
+
+ List<YwLinePoint> ywLinePointList = ywLinePointMapper.selectList(new QueryWrapper<YwLinePoint>().lambda()
+ .eq(YwLinePoint::getLineId,ywPatrolScheme.getLineId())
+ .eq(YwLinePoint::getIsdeleted,Constants.ZERO)
+ .orderByAsc(YwLinePoint::getSortnum));
+ if(CollectionUtils.isEmpty(ywLinePointList)){
+ return;
+ }
+ codeSn = codeSn + 1;
+ String nextCode = StringUtils.leftPad(codeSn.toString(),3,"0");
+ YwPatrolTask ywPatrolTask = new YwPatrolTask();
+ ywPatrolTask.setCreateDate(new Date());
+ ywPatrolTask.setCreator(ywPatrolScheme.getCreator());
+ ywPatrolTask.setIsdeleted(Constants.ZERO);
+ ywPatrolTask.setStatus(Constants.patrolTaskStatus.waitStart);
+ ywPatrolTask.setSchemeId(ywPatrolScheme.getId());
+ ywPatrolTask.setCircleType(ywPatrolScheme.getCircleType());
+ ywPatrolTask.setStartDate(DateUtil.getDateFromString(schemeDateStr +" "+ ywPatrolScheme.getStartTime() +":00"));
+ ywPatrolTask.setEndDate(DateUtil.getDateFromString(schemeDateStr +" "+ ywPatrolScheme.getEndTime() +":00"));
+ ywPatrolTask.setDealUserId(ywPatrolScheme.getDealUserId());
+ ywPatrolTask.setCode(ywPatrolScheme.getCode() + "-" + nextCode);
+ ywPatrolTaskMapper.insert(ywPatrolTask);
+
+ List<YwPatrolTaskRecord> ywPatrolTaskRecordList = new ArrayList<>();
+ for (int i = 0; i < ywLinePointList.size(); i++) {
+ YwLinePoint ywLinePoint = ywLinePointList.get(i);
+ //鐢熸垚浠诲姟鏁版嵁
+ YwPatrolTaskRecord ywPatrolTaskRecord = new YwPatrolTaskRecord();
+ ywPatrolTaskRecord.setCreateDate(new Date());
+ ywPatrolTaskRecord.setCreator(ywPatrolScheme.getCreator());
+ ywPatrolTaskRecord.setIsdeleted(Constants.ZERO);
+ ywPatrolTaskRecord.setStatus(Constants.ZERO);
+ ywPatrolTaskRecord.setSchemeId(ywPatrolScheme.getId());
+ ywPatrolTaskRecord.setPointId(ywLinePoint.getPointId());
+ ywPatrolTaskRecord.setTaskId(ywPatrolTask.getId());
+ ywPatrolTaskRecord.setDealUserId(ywPatrolScheme.getDealUserId());
+ ywPatrolTaskRecord.setSortnum(i+1);
+ ywPatrolTaskRecordList.add(ywPatrolTaskRecord);
+ }
+ ywPatrolTaskRecordMapper.insert(ywPatrolTaskRecordList);
+ }
+
+
+
@Override
- public void deleteById(Integer id) {
+ public void deleteById(Integer id, LoginUserInfo user) {
ywPatrolSchemeMapper.deleteById(id);
}
@@ -45,7 +197,7 @@
}
@Override
- public void deleteByIdInBatch(List<Integer> ids) {
+ public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) {
if (CollectionUtils.isEmpty(ids)) {
return;
}
@@ -54,7 +206,42 @@
@Override
public void updateById(YwPatrolScheme ywPatrolScheme) {
+ if(Objects.isNull(ywPatrolScheme)
+ || Objects.isNull(ywPatrolScheme.getId())
+ || StringUtils.isBlank(ywPatrolScheme.getTitle())
+ ||Objects.isNull(ywPatrolScheme.getLineId())
+ ||StringUtils.isBlank(ywPatrolScheme.getUserIds())
+ ||Objects.isNull(ywPatrolScheme.getStartDate())
+ ||Objects.isNull(ywPatrolScheme.getEndDate())
+ ||Objects.isNull(ywPatrolScheme.getCircleType())
+ ||StringUtils.isBlank(ywPatrolScheme.getStartTime())
+ ||StringUtils.isBlank(ywPatrolScheme.getEndTime())
+ || (!Constants.equalsInteger(ywPatrolScheme.getCircleType(),Constants.ZERO) &&StringUtils.isBlank(ywPatrolScheme.getCircleDays()))
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ LoginUserInfo loginUserInfo = ywPatrolScheme.getLoginUserInfo();
+ ywPatrolScheme.setEditDate(new Date());
+ ywPatrolScheme.setEditor(loginUserInfo.getId());
ywPatrolSchemeMapper.updateById(ywPatrolScheme);
+ }
+
+ @Override
+ public void updateStatus(YwPatrolScheme ywPatrolScheme) {
+ if(Objects.isNull(ywPatrolScheme)
+ || Objects.isNull(ywPatrolScheme.getId())
+ || Objects.isNull(ywPatrolScheme.getStatus())
+ || !(Constants.equalsInteger(ywPatrolScheme.getStatus(),Constants.ZERO) || Constants.equalsInteger(ywPatrolScheme.getStatus(),Constants.ONE ))
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ LoginUserInfo loginUserInfo = ywPatrolScheme.getLoginUserInfo();
+ ywPatrolScheme.setEditDate(new Date());
+ ywPatrolScheme.setEditor(loginUserInfo.getId());
+ ywPatrolSchemeMapper.updateById(ywPatrolScheme);
+ if(Constants.equalsInteger(ywPatrolScheme.getStatus(),Constants.ZERO)){
+ this.createThreeDaysData(ywPatrolScheme);
+ }
}
@Override
@@ -87,92 +274,77 @@
@Override
public PageData<YwPatrolScheme> findPage(PageWrap<YwPatrolScheme> pageWrap) {
IPage<YwPatrolScheme> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
- QueryWrapper<YwPatrolScheme> queryWrapper = new QueryWrapper<>();
+ MPJLambdaWrapper<YwPatrolScheme> queryWrapper = new MPJLambdaWrapper<YwPatrolScheme>();
Utils.MP.blankToNull(pageWrap.getModel());
- if (pageWrap.getModel().getId() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getId, pageWrap.getModel().getId());
+ YwPatrolScheme model = pageWrap.getModel();
+ queryWrapper.selectAll(YwPatrolScheme.class)
+ .select(" t2.realName as createUserName ")
+ .select(" t1.realName as userName ")
+ .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolScheme::getUserIds)
+ .leftJoin(" system_user t2 on t.creator = t2.id ")
+ .eq(YwPatrolScheme::getIsdeleted,Constants.ZERO)
+ .like(StringUtils.isNotBlank(model.getTitle()),YwPatrolScheme::getTitle,model.getTitle())
+ //鏌ヨ鏈夋椂娈典氦闆嗙殑鏁版嵁
+ .apply(Objects.nonNull(model.getStartDate())&&Objects.nonNull(model.getEndDate()),
+ " t.START_DATE <= '"+Utils.Date.getStart(pageWrap.getModel().getEndDate())+"' and t.END_DATE >= '"+Utils.Date.getStart(pageWrap.getModel().getStartDate())+"' "
+ )
+// .ge(Objects.nonNull(model.getStartDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()))
+// .le(Objects.nonNull(model.getEndDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()))
+ .orderByDesc(YwPatrolScheme::getCreateDate)
+ ;
+ IPage<YwPatrolScheme> iPage = ywPatrolSchemeMapper.selectJoinPage(page,YwPatrolScheme.class,queryWrapper);
+ for (YwPatrolScheme ywPatrolScheme:iPage.getRecords()) {
+ this.getSchemeStatus(ywPatrolScheme);
}
- if (pageWrap.getModel().getCreator() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getCreator, pageWrap.getModel().getCreator());
- }
- if (pageWrap.getModel().getCreateDate() != null) {
- queryWrapper.lambda().ge(YwPatrolScheme::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
- queryWrapper.lambda().le(YwPatrolScheme::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
- }
- if (pageWrap.getModel().getEditor() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getEditor, pageWrap.getModel().getEditor());
- }
- if (pageWrap.getModel().getEditDate() != null) {
- queryWrapper.lambda().ge(YwPatrolScheme::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
- queryWrapper.lambda().le(YwPatrolScheme::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
- }
- if (pageWrap.getModel().getIsdeleted() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getIsdeleted, pageWrap.getModel().getIsdeleted());
- }
- if (pageWrap.getModel().getTitle() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getTitle, pageWrap.getModel().getTitle());
- }
- if (pageWrap.getModel().getRemark() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getRemark, pageWrap.getModel().getRemark());
- }
- if (pageWrap.getModel().getStatus() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getStatus, pageWrap.getModel().getStatus());
- }
- if (pageWrap.getModel().getSortnum() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getSortnum, pageWrap.getModel().getSortnum());
- }
- if (pageWrap.getModel().getLineId() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getLineId, pageWrap.getModel().getLineId());
- }
- if (pageWrap.getModel().getUserIds() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getUserIds, pageWrap.getModel().getUserIds());
- }
- if (pageWrap.getModel().getDealUserId() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getDealUserId, pageWrap.getModel().getDealUserId());
- }
- if (pageWrap.getModel().getDealDate() != null) {
- queryWrapper.lambda().ge(YwPatrolScheme::getDealDate, Utils.Date.getStart(pageWrap.getModel().getDealDate()));
- queryWrapper.lambda().le(YwPatrolScheme::getDealDate, Utils.Date.getEnd(pageWrap.getModel().getDealDate()));
- }
- if (pageWrap.getModel().getDealInfo() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getDealInfo, pageWrap.getModel().getDealInfo());
- }
- if (pageWrap.getModel().getCircleType() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getCircleType, pageWrap.getModel().getCircleType());
- }
- if (pageWrap.getModel().getCircleDays() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getCircleDays, pageWrap.getModel().getCircleDays());
- }
- if (pageWrap.getModel().getStartDate() != null) {
- queryWrapper.lambda().ge(YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()));
- queryWrapper.lambda().le(YwPatrolScheme::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getStartDate()));
- }
- if (pageWrap.getModel().getEndDate() != null) {
- queryWrapper.lambda().ge(YwPatrolScheme::getEndDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()));
- queryWrapper.lambda().le(YwPatrolScheme::getEndDate, Utils.Date.getEnd(pageWrap.getModel().getEndDate()));
- }
- if (pageWrap.getModel().getStartTime() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getStartTime, pageWrap.getModel().getStartTime());
- }
- if (pageWrap.getModel().getEndTime() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getEndTime, pageWrap.getModel().getEndTime());
- }
- if (pageWrap.getModel().getProcessStatus() != null) {
- queryWrapper.lambda().eq(YwPatrolScheme::getProcessStatus, pageWrap.getModel().getProcessStatus());
- }
- for(PageWrap.SortData sortData: pageWrap.getSorts()) {
- if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
- queryWrapper.orderByDesc(sortData.getProperty());
- } else {
- queryWrapper.orderByAsc(sortData.getProperty());
- }
- }
- return PageData.from(ywPatrolSchemeMapper.selectPage(page, queryWrapper));
+ return PageData.from(iPage);
}
+
+ //鑾峰彇鐘舵��
+ public void getSchemeStatus(YwPatrolScheme ywPatrolScheme){
+ List<YwPatrolTask> ywPatrolTaskList = ywPatrolTaskMapper.selectList(new QueryWrapper<YwPatrolTask>().lambda()
+ .eq(YwPatrolTask::getSchemeId,ywPatrolScheme.getId())
+ .eq(YwPatrolTask::getIsdeleted,Constants.ZERO)
+ .ne(YwPatrolTask::getStatus,Constants.FOUR)
+ );
+
+ if(CollectionUtils.isEmpty(ywPatrolTaskList)){
+ ywPatrolScheme.setSchemeStatus(Constants.ZERO);
+ ywPatrolScheme.setTimeOutTaskNum(Constants.ZERO);
+ return;
+ }
+ //杩囨护鏁版嵁鏄惁瀛樺湪杩涜涓殑
+ if(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)).collect(Collectors.toList()).size()>Constants.ZERO){
+ ywPatrolScheme.setSchemeStatus(Constants.ONE);
+ ywPatrolScheme.setTimeOutTaskNum(ywPatrolTaskList.stream().filter(i->i.getEndDate().getTime()>System.currentTimeMillis())
+ .collect(Collectors.toList()).size());
+ return;
+ }
+
+ //杩囨护鏁版嵁鏄笉鏄叏閮ㄦ湭寮�濮�
+ if(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size(),ywPatrolTaskList.size())){
+ ywPatrolScheme.setSchemeStatus(Constants.ZERO);
+ ywPatrolScheme.setTimeOutTaskNum(ywPatrolTaskList.stream().filter(i->i.getEndDate().getTime()>System.currentTimeMillis())
+ .collect(Collectors.toList()).size());
+ return;
+ }
+ //杩囨护鏁版嵁鏄笉鏄叏閮ㄥ凡瀹屾垚
+ if(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.THREE)).collect(Collectors.toList()).size()
+ ,ywPatrolTaskList.size())){
+ ywPatrolScheme.setSchemeStatus(Constants.TWO);
+ return;
+ }
+ }
+
+
+
@Override
public long count(YwPatrolScheme ywPatrolScheme) {
QueryWrapper<YwPatrolScheme> wrapper = new QueryWrapper<>(ywPatrolScheme);
return ywPatrolSchemeMapper.selectCount(wrapper);
}
+
+
+
+
}
--
Gitblit v1.9.3