From a2299a6d4a6f99e9c11132138f5d3e9ec68f03ea Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 06 六月 2025 19:19:34 +0800
Subject: [PATCH] 开发更新

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java |  537 +++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 442 insertions(+), 95 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java
index 84371ec..07ad32d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java
@@ -1,5 +1,7 @@
 package com.doumee.service.business.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.LoginUserInfo;
@@ -7,26 +9,33 @@
 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.dao.business.YwBuildingMapper;
-import com.doumee.dao.business.YwProjectMapper;
-import com.doumee.dao.business.YwRoomMapper;
-import com.doumee.dao.business.YwWorkorderMapper;
-import com.doumee.dao.business.model.YwBuilding;
-import com.doumee.dao.business.model.YwProject;
-import com.doumee.dao.business.model.YwRoom;
-import com.doumee.dao.business.model.YwWorkorder;
+import com.doumee.dao.business.*;
+import com.doumee.dao.business.dto.YwWorkorderDataDTO;
+import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.vo.YwWorkorderDataVO;
+import com.doumee.dao.system.MultifileMapper;
+import com.doumee.dao.system.SystemUserMapper;
+import com.doumee.dao.system.join.NoticesJoinMapper;
+import com.doumee.dao.system.model.Multifile;
+import com.doumee.dao.system.model.Notices;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.YwWorkorderService;
 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.checkerframework.checker.units.qual.C;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 杩愮淮宸ュ崟淇℃伅琛⊿ervice瀹炵幇
@@ -39,13 +48,27 @@
     @Autowired
     private YwWorkorderMapper ywWorkorderMapper;
     @Autowired
+    private SystemUserMapper systemUserMapper;
+    @Autowired
+    private YwWorkorderLogMapper ywWorkorderLogMapper;
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private MultifileMapper multifileMapper;
+    @Autowired
     private YwProjectMapper ywProjectMapper;
     @Autowired
     private YwRoomMapper ywRoomMapper;
     @Autowired
     private YwBuildingMapper ywBuildingMapper;
+    @Autowired
+    private YwFloorMapper ywFloorMapper;
+    @Autowired
+    private NoticesJoinMapper noticesJoinMapper;
+
 
     @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public Integer create(YwWorkorder model) {
 
         dealParamValid(model);
@@ -53,10 +76,49 @@
         model.setIsdeleted(Constants.ZERO);
         model.setCreateDate(new Date());
         model.setStatus(Constants.ZERO);
+        model.setDealStatus(Constants.ZERO);
         model.setEditDate(model.getCreateDate());
         model.setEditor(model.getCreator());
         ywWorkorderMapper.insert(model);
+
+        List<Multifile> fileList = new ArrayList<>();
+        if(model.getFileList()!=null && model.getFileList().size()>0){
+            boolean isTrue = false;
+            for (int i = 0; i <  model.getFileList().size(); i++) {
+                Multifile multifile =  model.getFileList().get(i);
+                if(StringUtils.isBlank(multifile.getFileurl())){
+                    continue;
+                }
+                multifile.setCreateDate(model.getCreateDate());
+                multifile.setEditDate(model.getCreateDate());
+                multifile.setCreator(model.getEditor());
+                multifile.setIsdeleted(Constants.ZERO);
+                multifile.setObjId(model.getId());
+                multifile.setEditor(model.getCreator());
+                multifile.setObjType(Constants.MultiFile.YW_WORKORDER_PROBLEM.getKey());
+                multifile.setSortnum(i+1);
+                fileList.add(multifile);
+            }
+        }
+        if(fileList.size()>0){
+            multifileMapper.insert(fileList);
+        }
+        dealLogBiz(model,Constants.YwLogType.WORKORDER_CREATE,model.getLoginUserInfo().getRealname(),null);//璁板綍鏂板缓鏃ュ織
         return model.getId();
+    }
+
+    private void dealLogBiz(YwWorkorder model,Constants.YwLogType type,String param1,String param2) {
+        YwWorkorderLog log = new YwWorkorderLog();
+        log.setCreateDate(model.getEditDate());
+        log.setCreator(model.getCreator());
+        log.setJobId(model.getId());
+        log.setIsdeleted(Constants.ZERO);
+        log.setObjId(model.getId()+"");
+        log.setObjType(type.getKey());
+        log.setParam1(param1);
+        log.setParam2(param2);
+        log.setTitle(type.getNoteinfo());
+        ywWorkorderLogMapper.insert(log);
     }
 
     private void dealParamValid(YwWorkorder model) {
@@ -73,13 +135,14 @@
             model.setProjectId(room.getProjectId());
         }else{
             //濡傛灉鏄叕鍏卞尯鍩熻淇紝蹇呴』閫夋嫨妤煎畤淇℃伅
-            if(model.getBuildingId()==null){
-                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇烽�夋嫨姝g‘鐨勬ゼ瀹囦俊鎭紒");
+            if(model.getFloorId()==null){
+                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇烽�夋嫨姝g‘鐨勬ゼ灞備俊鎭紒");
             }
-            YwBuilding room = ywBuildingMapper.selectById(model.getRoomId());
+            YwFloor room = ywFloorMapper.selectById(model.getFloorId());
             if(room ==null || Constants.equalsInteger(room.getIsdeleted(),Constants.ONE)){
-                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇烽�夋嫨姝g‘鐨勬ゼ瀹囦俊鎭紒");
+                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇烽�夋嫨姝g‘鐨勬ゼ灞備俊鎭紒");
             }
+            model.setBuildingId(room.getBuildingId());
             model.setProjectId(room.getProjectId());
         }
     }
@@ -111,13 +174,185 @@
     }
 
     @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public  void dispatchOrder(YwWorkorder ywWorkorder){
+        YwWorkorder model = this.findById(ywWorkorder.getId());
+        if(model ==null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝宸ュ崟淇℃伅涓嶅瓨鍦紒");
+        }
+        if(!Constants.equalsInteger(model.getDealStatus(),Constants.ZERO)
+//                && !Constants.equalsInteger(model.getDealStatus(),Constants.ONE)
+        ){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝宸ュ崟鐘舵�佸凡娴佽浆锛屼笉鏀寔褰撳墠鎿嶄綔锛�");
+        }
+
+        SystemUser user = systemUserMapper.selectById(ywWorkorder.getDealUserId());
+        if(user ==null ||  (user.getDeleted()!=null&& user.getDeleted() )){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鍛樺伐淇℃伅涓嶅瓨鍦紒");
+        }
+        YwWorkorder update = new YwWorkorder();
+        update.setId(model.getId());
+        update.setEditDate(new Date());
+        update.setEditor(ywWorkorder.getLoginUserInfo().getId());
+        update.setDealStatus(Constants.ONE);
+        update.setDispatchUserId(update.getEditor());
+        update.setDispatchDate(update.getEditDate());
+        update.setDispatchInfo(ywWorkorder.getDispatchInfo());
+        update.setDealUserId(ywWorkorder.getDealUserId());
+        ywWorkorderMapper.updateById(update);
+
+        //娣诲姞寰呭姙淇℃伅
+        Notices notices = new Notices();
+        notices.setCreateDate(new Date());
+        notices.setCreator(update.getEditor());
+        notices.setIsdeleted(Constants.ZERO);
+        notices.setParam1(DateUtil.formatDate(model.getCreateDate(),"yyyy-MM-dd"));
+        notices.setTitle("宸ュ崟寰呭姙");
+        notices.setObjId(update.getId());
+        notices.setObjType(Constants.TWO);
+        notices.setType(notices.getObjType());
+        notices.setUserId(ywWorkorder.getDealUserId());
+        notices.setStatus(Constants.ZERO);
+        //鏁寸悊json鏁版嵁
+        Map<String,Object> jsonMap = new HashMap<>();
+        jsonMap.put("key1", model.getBuildingName()+"/"+model.getFloorName());
+        jsonMap.put("key2", DateUtil.getFomartDate(model.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
+        jsonMap.put("key3", Constants.equalsInteger(model.getAreaType(),Constants.ZERO)?"瀹ゅ唴缁翠慨":"鍏叡鍖哄煙");
+        jsonMap.put("key4", model.getCategoryParentName()+"/"+model.getCategoryName());
+        notices.setParam2(JSONObject.toJSONString(jsonMap));
+        notices.setParam3(Constants.ZERO+"");
+        noticesJoinMapper.insert(notices);
+
+
+        dealLogBiz(model,Constants.YwLogType.WORKORDER_DISPATCH,ywWorkorder.getLoginUserInfo().getRealname(),user.getRealname());//璁板綍鏂板缓鏃ュ織
+    }
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public  void dealOrder(YwWorkorder ywWorkorder){
+        YwWorkorder model = this.findById(ywWorkorder.getId());
+        if(model ==null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝宸ュ崟淇℃伅涓嶅瓨鍦紒");
+        }
+        if(!Constants.equalsInteger(model.getDealStatus(),Constants.ZERO) && !Constants.equalsInteger(model.getDealStatus(),Constants.ONE)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝宸ュ崟鐘舵�佸凡娴佽浆锛屼笉鏀寔褰撳墠鎿嶄綔锛�");
+        }
+
+//        SystemUser user = systemUserMapper.selectById(ywWorkorder.getDealUserId());
+//        if(user ==null ||  (user.getDeleted()!=null&& user.getDeleted() )){
+//            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鍛樺伐淇℃伅涓嶅瓨鍦紒");
+//        }
+        YwWorkorder update = new YwWorkorder();
+        update.setId(model.getId());
+        update.setEditDate(new Date());
+        update.setEditor(ywWorkorder.getLoginUserInfo().getId());
+        update.setDealStatus(Constants.TWO);
+        update.setDealUserId(update.getEditor());
+        update.setDealDate(update.getEditDate());
+        update.setDealInfo(ywWorkorder.getDealInfo());
+        ywWorkorderMapper.updateById(update);
+
+
+        //鏍囪寰呭姙宸插鐞�
+        noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
+                .set(Notices::getStatus,Constants.ONE)
+                .set(Notices::getParam3,Constants.TWO)
+                .eq(Notices::getIsdeleted,Constants.ZERO)
+                .eq(Notices::getObjType,Constants.TWO)
+                .eq(Notices::getObjId,update.getId())
+        );
+
+
+        List<Multifile> fileList = new ArrayList<>();
+        if(ywWorkorder.getDealFileList()!=null && ywWorkorder.getDealFileList().size()>0){
+            for (int i = 0; i <  ywWorkorder.getDealFileList().size(); i++) {
+                Multifile multifile =  ywWorkorder.getDealFileList().get(i);
+                if(StringUtils.isBlank(multifile.getFileurl())){
+                    continue;
+                }
+                multifile.setCreateDate(update.getEditDate());
+                multifile.setCreator(update.getEditor());
+                multifile.setEditDate(update.getEditDate());
+                multifile.setIsdeleted(Constants.ZERO);
+                multifile.setObjId(model.getId());
+                multifile.setEditor(update.getEditor());
+                multifile.setObjType(Constants.MultiFile.YW_WORKORDER_DEAL.getKey());
+                multifile.setSortnum(i+1);
+                fileList.add(multifile);
+            }
+        }
+        if(fileList.size()>0){
+            multifileMapper.insert(fileList);
+        }
+        dealLogBiz(model,Constants.YwLogType.WORKORDER_DEAL,ywWorkorder.getLoginUserInfo().getRealname(),null);//璁板綍鏂板缓鏃ュ織
+    }
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public void updateById(YwWorkorder model) {
         dealParamValid(model);
         model.setEditDate(new Date());
         model.setEditor(model.getLoginUserInfo().getId());
         ywWorkorderMapper.updateById(model);
-    }
 
+        List<Multifile> fileList = new ArrayList<>();
+        if(model.getFileList()!=null && model.getFileList().size()>0){
+            for (int i = 0; i <  model.getFileList().size(); i++) {
+                Multifile multifile =  model.getFileList().get(i);
+                if(StringUtils.isBlank(multifile.getFileurl())){
+                    continue;
+                }
+                multifile.setCreateDate(new Date());
+                multifile.setCreator(model.getEditor());
+                multifile.setIsdeleted(Constants.ZERO);
+                multifile.setObjId(model.getId());
+                multifile.setCreator(model.getCreator());
+                multifile.setObjType(Constants.MultiFile.YW_WORKORDER_PROBLEM.getKey());
+                multifile.setSortnum(i+1);
+                fileList.add(multifile);
+            }
+        }
+        multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda()
+                .set(Multifile::getIsdeleted,Constants.ONE)
+                .set(Multifile::getEditDate,model.getEditDate())
+                .set(Multifile::getEditor,model.getEditor())
+                .eq(Multifile::getIsdeleted, Constants.ZERO)
+                .eq(Multifile::getObjType,Constants.MultiFile.YW_WORKORDER_PROBLEM.getKey())
+        );
+        if(fileList.size()>0){
+            multifileMapper.insert(fileList);
+        }
+    }
+    private void initFiles(YwWorkorder model) {
+        List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda()
+                .eq(Multifile::getObjId, model.getId() )
+                .in(Multifile::getObjType, Arrays.asList(new Integer[]{Constants.MultiFile.YW_WORKORDER_PROBLEM.getKey()
+                        ,Constants.MultiFile.YW_WORKORDER_DEAL.getKey() }))
+                .eq(Multifile::getIsdeleted,Constants.ZERO));
+        if(multifiles!=null){
+            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
+                    +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_WORKORDER_FILE).getCode();
+            for(Multifile f : multifiles){
+                if(StringUtils.isBlank(f.getFileurl())){
+                    continue;
+                }
+                f.setFileurlFull(path+f.getFileurl());
+                if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.YW_WORKORDER_PROBLEM.getKey())){
+                    //鐜板満鎯呭喌
+                    if(model.getFileList() == null){
+                        model.setFileList(new ArrayList<>());
+                    }
+                    model.getFileList().add(f);
+                }
+                if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.YW_WORKORDER_DEAL.getKey())){
+                    //澶勭悊闄勪欢
+                    if(model.getDealFileList() == null){
+                        model.setDealFileList(new ArrayList<>());
+                    }
+                    model.getDealFileList().add(f);
+                }
+
+            }
+        }
+    }
     @Override
     public void updateByIdInBatch(List<YwWorkorder> ywWorkorders) {
         if (CollectionUtils.isEmpty(ywWorkorders)) {
@@ -130,7 +365,44 @@
 
     @Override
     public YwWorkorder findById(Integer id) {
-        return ywWorkorderMapper.selectById(id);
+        MPJLambdaWrapper<YwWorkorder> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(YwWorkorder.class )
+                .selectAs(SystemUser::getRealname,YwWorkorder::getDealUserName)
+                .selectAs(Company::getName,YwWorkorder::getDealUserCompany)
+                .select("t3.realname",YwWorkorder::getCreatorName)
+                .select("t3.mobile",YwWorkorder::getCreatorMobile)
+                .select("c.name",YwWorkorder::getCreatorCompany)
+                .select("ct.name",YwWorkorder::getCategoryName)
+                .select("ct1.name",YwWorkorder::getCategoryParentName)
+                .selectAs(YwRoom::getName,YwWorkorder::getRoomName)
+                .selectAs(YwRoom::getRoomNum,YwWorkorder::getRoomNum)
+                .selectAs(YwFloor::getName,YwWorkorder::getFloorName)
+                .selectAs(YwBuilding::getName,YwWorkorder::getBuildingName)
+                .selectAs(YwProject::getName,YwWorkorder::getProjectName)
+                .leftJoin(SystemUser.class,SystemUser::getId,YwWorkorder::getDealUserId)
+                .leftJoin(Category.class,Category::getId,YwWorkorder::getCateId)
+                .leftJoin(SystemUser.class,SystemUser::getId,YwWorkorder::getCreator)
+                .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
+                .leftJoin(YwRoom.class,YwRoom::getId,YwWorkorder::getRoomId)
+                .leftJoin(YwFloor.class,YwFloor::getId,YwWorkorder::getFloorId)
+                .leftJoin(YwBuilding.class,YwBuilding::getId,YwWorkorder::getBuildingId)
+                .leftJoin(YwProject.class,YwProject::getId,YwWorkorder::getProjectId)
+                .leftJoin(" company c on c.id = t1.company_id  ")
+                .leftJoin(" category ct on ct.id = t.cate_id  ")
+                .leftJoin(" category ct1 on ct1.id = ct.PARENT_ID  ")
+                .eq(YwWorkorder::getId,id);
+        YwWorkorder model = ywWorkorderMapper.selectJoinOne(YwWorkorder.class,queryWrapper);
+        initFiles(model);//璇诲彇闄勪欢淇℃伅
+        YwWorkorderLog log = new YwWorkorderLog();
+        log.setJobId(model.getId());
+        log.setIsdeleted(Constants.ZERO);
+        model.setLogList(ywWorkorderLogMapper.selectList(new QueryWrapper<YwWorkorderLog>(log)
+                 .lambda()
+                 .in(YwWorkorderLog::getObjType,Constants.YwLogType.WORKORDER_DEAL.getKey()
+                 ,Constants.YwLogType.WORKORDER_CREATE.getKey()
+                   ,Constants.YwLogType.WORKORDER_DISPATCH.getKey())
+                .orderByAsc(YwWorkorderLog::getCreateDate)));
+        return model;
     }
 
     @Override
@@ -149,101 +421,132 @@
     @Override
     public PageData<YwWorkorder> findPage(PageWrap<YwWorkorder> pageWrap) {
         IPage<YwWorkorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<YwWorkorder> queryWrapper = new QueryWrapper<>();
+        MPJLambdaWrapper<YwWorkorder> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(YwWorkorder.class )
+                .selectAs(SystemUser::getRealname,YwWorkorder::getDealUserName)
+                .select("t3.realname",YwWorkorder::getCreatorName)
+                .selectAs(Category::getName,YwWorkorder::getCategoryName)
+                .selectAs(YwRoom::getName,YwWorkorder::getRoomName)
+                .selectAs(YwRoom::getRoomNum,YwWorkorder::getRoomNum)
+                .selectAs(YwFloor::getName,YwWorkorder::getFloorName)
+                .selectAs(YwBuilding::getName,YwWorkorder::getBuildingName)
+                .selectAs(YwProject::getName,YwWorkorder::getProjectName)
+                .selectAs(YwProblem::getId,YwWorkorder::getProblemId)
+                .leftJoin(SystemUser.class,SystemUser::getId,YwWorkorder::getDealUserId)
+                .leftJoin(Category.class,Category::getId,YwWorkorder::getCateId)
+                .leftJoin(SystemUser.class,SystemUser::getId,YwWorkorder::getCreator)
+                .leftJoin(YwRoom.class,YwRoom::getId,YwWorkorder::getRoomId)
+                .leftJoin(YwFloor.class,YwFloor::getId,YwWorkorder::getFloorId)
+                .leftJoin(YwBuilding.class,YwBuilding::getId,YwWorkorder::getBuildingId)
+                .leftJoin(YwProject.class,YwProject::getId,YwBuilding::getProjectId)
+                .leftJoin(YwProblem.class,YwProblem::getWorkorderId,YwWorkorder::getId)
+                .apply(StringUtils.isNotBlank(pageWrap.getModel().getQueryStatus())," find_in_set(t.DEAL_STATUS ,'"+pageWrap.getModel().getQueryStatus()+"') ");
         pageWrap.getModel().setIsdeleted(Constants.ZERO);
         Utils.MP.blankToNull(pageWrap.getModel());
         if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getId, pageWrap.getModel().getId());
-        }
-        if (pageWrap.getModel().getCreator() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getCreator, pageWrap.getModel().getCreator());
-        }
-        if (pageWrap.getModel().getCreateDate() != null) {
-            queryWrapper.lambda().ge(YwWorkorder::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
-            queryWrapper.lambda().le(YwWorkorder::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
-        }
-        if (pageWrap.getModel().getEditor() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getEditor, pageWrap.getModel().getEditor());
-        }
-        if (pageWrap.getModel().getEditDate() != null) {
-            queryWrapper.lambda().ge(YwWorkorder::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
-            queryWrapper.lambda().le(YwWorkorder::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
-        }
-        if (pageWrap.getModel().getIsdeleted() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getIsdeleted, pageWrap.getModel().getIsdeleted());
-        }
-        if (pageWrap.getModel().getTitle() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getTitle, pageWrap.getModel().getTitle());
-        }
-        if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getRemark, pageWrap.getModel().getRemark());
-        }
-        if (pageWrap.getModel().getStatus() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getStatus, pageWrap.getModel().getStatus());
-        }
-        if (pageWrap.getModel().getSortnum() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getSortnum, pageWrap.getModel().getSortnum());
-        }
-        if (pageWrap.getModel().getContent() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getContent, pageWrap.getModel().getContent());
-        }
-        if (pageWrap.getModel().getGetDate() != null) {
-            queryWrapper.lambda().ge(YwWorkorder::getGetDate, Utils.Date.getStart(pageWrap.getModel().getGetDate()));
-            queryWrapper.lambda().le(YwWorkorder::getGetDate, Utils.Date.getEnd(pageWrap.getModel().getGetDate()));
-        }
-        if (pageWrap.getModel().getProjectId() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getProjectId, pageWrap.getModel().getProjectId());
-        }
-        if (pageWrap.getModel().getBuildingId() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getBuildingId, pageWrap.getModel().getBuildingId());
-        }
-        if (pageWrap.getModel().getRoomId() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getRoomId, pageWrap.getModel().getRoomId());
-        }
-        if (pageWrap.getModel().getUserId() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getUserId, pageWrap.getModel().getUserId());
-        }
-        if (pageWrap.getModel().getPhone() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getPhone, pageWrap.getModel().getPhone());
-        }
-        if (pageWrap.getModel().getSubmitDate() != null) {
-            queryWrapper.lambda().ge(YwWorkorder::getSubmitDate, Utils.Date.getStart(pageWrap.getModel().getSubmitDate()));
-            queryWrapper.lambda().le(YwWorkorder::getSubmitDate, Utils.Date.getEnd(pageWrap.getModel().getSubmitDate()));
-        }
-        if (pageWrap.getModel().getCateId() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getCateId, pageWrap.getModel().getCateId());
-        }
-        if (pageWrap.getModel().getAreaType() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getAreaType, pageWrap.getModel().getAreaType());
-        }
-        if (pageWrap.getModel().getCode() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getCode, pageWrap.getModel().getCode());
-        }
-        if (pageWrap.getModel().getDealStatus() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getDealStatus, pageWrap.getModel().getDealStatus());
+            queryWrapper.eq(YwWorkorder::getId, pageWrap.getModel().getId());
         }
         if (pageWrap.getModel().getDispatchUserId() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getDispatchUserId, pageWrap.getModel().getDispatchUserId());
+            queryWrapper.eq(YwWorkorder::getDispatchUserId, pageWrap.getModel().getDispatchUserId());
+        }
+        if(Objects.nonNull(pageWrap.getModel().getRoomName())){
+            queryWrapper.and(i->i.like(YwFloor::getName,pageWrap.getModel().getRoomName()).or()
+                    .like(YwRoom::getRoomNum,pageWrap.getModel().getRoomName())
+            );
+        }
+        if (pageWrap.getModel().getCreator() != null) {
+            queryWrapper.eq(YwWorkorder::getCreator, pageWrap.getModel().getCreator());
+        }
+        if (pageWrap.getModel().getOrigin() != null) {
+            queryWrapper.eq(YwWorkorder::getOrigin, pageWrap.getModel().getOrigin());
+        }
+        if (pageWrap.getModel().getCreateDate() != null) {
+            queryWrapper.ge(YwWorkorder::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+            queryWrapper.le(YwWorkorder::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+        }
+        if (pageWrap.getModel().getEditor() != null) {
+            queryWrapper.eq(YwWorkorder::getEditor, pageWrap.getModel().getEditor());
+        }
+        if (pageWrap.getModel().getEditDate() != null) {
+            queryWrapper.ge(YwWorkorder::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+            queryWrapper.le(YwWorkorder::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+        }
+        if (pageWrap.getModel().getIsdeleted() != null) {
+            queryWrapper.eq(YwWorkorder::getIsdeleted, pageWrap.getModel().getIsdeleted());
+        }
+        if (pageWrap.getModel().getTitle() != null) {
+            queryWrapper.eq(YwWorkorder::getTitle, pageWrap.getModel().getTitle());
+        }
+        if (pageWrap.getModel().getRemark() != null) {
+            queryWrapper.eq(YwWorkorder::getRemark, pageWrap.getModel().getRemark());
+        }
+        if (pageWrap.getModel().getStatus() != null) {
+            queryWrapper.eq(!Constants.equalsInteger(pageWrap.getModel().getStatus(),-1),YwWorkorder::getStatus, pageWrap.getModel().getStatus());
+            queryWrapper.in(Constants.equalsInteger(pageWrap.getModel().getStatus(),-1),YwWorkorder::getStatus, Constants.ZERO,Constants.ONE);
+        }
+        if (pageWrap.getModel().getSortnum() != null) {
+            queryWrapper.eq(YwWorkorder::getSortnum, pageWrap.getModel().getSortnum());
+        }
+        if (pageWrap.getModel().getContent() != null) {
+            queryWrapper.eq(YwWorkorder::getContent, pageWrap.getModel().getContent());
+        }
+        if (pageWrap.getModel().getGetDate() != null) {
+            queryWrapper.ge(YwWorkorder::getGetDate, Utils.Date.getStart(pageWrap.getModel().getGetDate()));
+            queryWrapper.le(YwWorkorder::getGetDate, Utils.Date.getEnd(pageWrap.getModel().getGetDate()));
+        }
+        if (pageWrap.getModel().getProjectId() != null) {
+            queryWrapper.eq(YwWorkorder::getProjectId, pageWrap.getModel().getProjectId());
+        }
+        if (pageWrap.getModel().getBuildingId() != null) {
+            queryWrapper.eq(YwWorkorder::getBuildingId, pageWrap.getModel().getBuildingId());
+        }
+        if (pageWrap.getModel().getRoomId() != null) {
+            queryWrapper.eq(YwWorkorder::getRoomId, pageWrap.getModel().getRoomId());
+        }
+        if (pageWrap.getModel().getFloorId() != null) {
+            queryWrapper.eq(YwWorkorder::getFloorId, pageWrap.getModel().getFloorId());
+        }
+        if (pageWrap.getModel().getUserId() != null) {
+            queryWrapper.eq(YwWorkorder::getUserId, pageWrap.getModel().getUserId());
+        }
+        if (pageWrap.getModel().getPhone() != null) {
+            queryWrapper.eq(YwWorkorder::getPhone, pageWrap.getModel().getPhone());
+        }
+        if (pageWrap.getModel().getSubmitDate() != null) {
+            queryWrapper.ge(YwWorkorder::getSubmitDate, Utils.Date.getStart(pageWrap.getModel().getSubmitDate()));
+            queryWrapper.le(YwWorkorder::getSubmitDate, Utils.Date.getEnd(pageWrap.getModel().getSubmitDate()));
+        }
+        if (pageWrap.getModel().getCateId() != null) {
+            queryWrapper.eq(YwWorkorder::getCateId, pageWrap.getModel().getCateId());
+        }
+        if (pageWrap.getModel().getAreaType() != null) {
+            queryWrapper.eq(YwWorkorder::getAreaType, pageWrap.getModel().getAreaType());
+        }
+        if (pageWrap.getModel().getCode() != null) {
+            queryWrapper.eq(YwWorkorder::getCode, pageWrap.getModel().getCode());
+        }
+        if (pageWrap.getModel().getDealStatus() != null) {
+            queryWrapper.eq(YwWorkorder::getDealStatus, pageWrap.getModel().getDealStatus());
         }
         if (pageWrap.getModel().getDispatchDate() != null) {
-            queryWrapper.lambda().ge(YwWorkorder::getDispatchDate, Utils.Date.getStart(pageWrap.getModel().getDispatchDate()));
-            queryWrapper.lambda().le(YwWorkorder::getDispatchDate, Utils.Date.getEnd(pageWrap.getModel().getDispatchDate()));
+            queryWrapper.ge(YwWorkorder::getDispatchDate, Utils.Date.getStart(pageWrap.getModel().getDispatchDate()));
+            queryWrapper.le(YwWorkorder::getDispatchDate, Utils.Date.getEnd(pageWrap.getModel().getDispatchDate()));
         }
         if (pageWrap.getModel().getDispatchInfo() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getDispatchInfo, pageWrap.getModel().getDispatchInfo());
+            queryWrapper.eq(YwWorkorder::getDispatchInfo, pageWrap.getModel().getDispatchInfo());
         }
         if (pageWrap.getModel().getDealUserId() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getDealUserId, pageWrap.getModel().getDealUserId());
+            queryWrapper.eq(YwWorkorder::getDealUserId, pageWrap.getModel().getDealUserId());
         }
         if (pageWrap.getModel().getDealDate() != null) {
-            queryWrapper.lambda().ge(YwWorkorder::getDealDate, Utils.Date.getStart(pageWrap.getModel().getDealDate()));
-            queryWrapper.lambda().le(YwWorkorder::getDealDate, Utils.Date.getEnd(pageWrap.getModel().getDealDate()));
+            queryWrapper.ge(YwWorkorder::getDealDate, Utils.Date.getStart(pageWrap.getModel().getDealDate()));
+            queryWrapper.le(YwWorkorder::getDealDate, Utils.Date.getEnd(pageWrap.getModel().getDealDate()));
         }
         if (pageWrap.getModel().getDealInfo() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getDealInfo, pageWrap.getModel().getDealInfo());
+            queryWrapper.eq(YwWorkorder::getDealInfo, pageWrap.getModel().getDealInfo());
         }
         if (pageWrap.getModel().getDealType() != null) {
-            queryWrapper.lambda().eq(YwWorkorder::getDealType, pageWrap.getModel().getDealType());
+            queryWrapper.eq(YwWorkorder::getDealType, pageWrap.getModel().getDealType());
         }
         for(PageWrap.SortData sortData: pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
@@ -252,7 +555,28 @@
                 queryWrapper.orderByAsc(sortData.getProperty());
             }
         }
-        return PageData.from(ywWorkorderMapper.selectPage(page, queryWrapper));
+        if(StringUtils.isNotBlank(pageWrap.getModel().getBuildingName())){
+            queryWrapper.and(rw ->{
+                rw.like(YwBuilding::getName,pageWrap.getModel().getBuildingName()).or()
+                        .like(YwRoom::getName,pageWrap.getModel().getBuildingName());
+            });
+        }
+        queryWrapper.ge(Objects.nonNull(pageWrap.getModel().getQueryStartTime()), YwWorkorder::getCreateDate, pageWrap.getModel().getQueryStartTime())
+                .le(Objects.nonNull(pageWrap.getModel().getQueryEndTime()), YwWorkorder::getCreateDate, pageWrap.getModel().getQueryEndTime());
+        queryWrapper.orderByDesc(YwContract::getCreateDate );
+
+        PageData<YwWorkorder> result =   PageData.from(ywWorkorderMapper.selectPage(page, queryWrapper));
+        if(result!=null && result.getRecords()!=null){
+            for(YwWorkorder m : result.getRecords()){
+                if(Constants.equalsInteger(m.getAreaType(),Constants.ZERO)){
+                        //0瀹ゅ唴缁翠慨
+                    m.setAreaNameInfo(StringUtils.defaultString(m.getBuildingName(),"")+"/"+StringUtils.defaultString(m.getRoomNum(),""));
+                }else{
+                    m.setAreaNameInfo(StringUtils.defaultString(m.getBuildingName(),"")+"/"+StringUtils.defaultString(m.getFloorName(),""));
+                }
+            }
+        }
+        return result;
     }
 
     @Override
@@ -260,4 +584,27 @@
         QueryWrapper<YwWorkorder> wrapper = new QueryWrapper<>(ywWorkorder);
         return ywWorkorderMapper.selectCount(wrapper);
     }
+
+
+
+    @Override
+    public YwWorkorderDataVO getDataVO(YwWorkorderDataDTO dto){
+        YwWorkorderDataVO ywWorkorderDataVO = new YwWorkorderDataVO();
+
+        List<YwWorkorder> list = ywWorkorderMapper.selectList(new QueryWrapper<YwWorkorder>().lambda()
+                .eq(YwWorkorder::getIsdeleted,Constants.ZERO)
+                .eq(Constants.equalsInteger(dto.getQueryType(),Constants.ONE),YwWorkorder::getProjectId,dto.getQueryId())
+                .eq(Constants.equalsInteger(dto.getQueryType(),Constants.TWO),YwWorkorder::getFloorId,dto.getQueryId())
+                .eq(Constants.equalsInteger(dto.getQueryType(),Constants.THREE),YwWorkorder::getRoomId,dto.getQueryId()));
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
+            ywWorkorderDataVO.setAmount(list.size());
+            ywWorkorderDataVO.setMonthAmount(list.stream().filter(i-> DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(DateUtil.formatDate(new Date(),"yyyy-MM"))).collect(Collectors.toList()).size());
+            ywWorkorderDataVO.setWaitDealAmount(list.stream().filter(i-> Constants.equalsInteger(i.getDealStatus(),Constants.ONE)).collect(Collectors.toList()).size());
+            ywWorkorderDataVO.setWaitAssignAmount(list.stream().filter(i-> Constants.equalsInteger(i.getDealStatus(),Constants.ZERO)).collect(Collectors.toList()).size());
+        }
+        return ywWorkorderDataVO;
+    }
+
+
+
 }

--
Gitblit v1.9.3