From 0a99001be87811ebb884b8f3f491f48054a22330 Mon Sep 17 00:00:00 2001
From: renkang <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 13 五月 2025 17:29:00 +0800
Subject: [PATCH] 客户资料 巡检任务业务
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 156 insertions(+), 17 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 4027840..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,6 @@
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;
@@ -8,12 +9,17 @@
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.*;
+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;
@@ -29,6 +35,7 @@
import org.springframework.util.CollectionUtils;
import java.util.*;
+import java.util.stream.Collectors;
/**
* 杩愮淮宸ュ崟淇℃伅琛⊿ervice瀹炵幇
@@ -56,6 +63,9 @@
private YwBuildingMapper ywBuildingMapper;
@Autowired
private YwFloorMapper ywFloorMapper;
+ @Autowired
+ private NoticesJoinMapper noticesJoinMapper;
+
@Override
@Transactional(rollbackFor = {BusinessException.class,Exception.class})
@@ -79,11 +89,12 @@
if(StringUtils.isBlank(multifile.getFileurl())){
continue;
}
- multifile.setCreateDate(new Date());
+ multifile.setCreateDate(model.getCreateDate());
+ multifile.setEditDate(model.getCreateDate());
multifile.setCreator(model.getEditor());
multifile.setIsdeleted(Constants.ZERO);
multifile.setObjId(model.getId());
- multifile.setCreator(model.getCreator());
+ multifile.setEditor(model.getCreator());
multifile.setObjType(Constants.MultiFile.YW_WORKORDER_PROBLEM.getKey());
multifile.setSortnum(i+1);
fileList.add(multifile);
@@ -169,7 +180,9 @@
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)){
+ if(!Constants.equalsInteger(model.getDealStatus(),Constants.ZERO)
+// && !Constants.equalsInteger(model.getDealStatus(),Constants.ONE)
+ ){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝宸ュ崟鐘舵�佸凡娴佽浆锛屼笉鏀寔褰撳墠鎿嶄綔锛�");
}
@@ -185,8 +198,33 @@
update.setDispatchUserId(update.getEditor());
update.setDispatchDate(update.getEditDate());
update.setDispatchInfo(ywWorkorder.getDispatchInfo());
+ update.setDealUserId(ywWorkorder.getDealUserId());
ywWorkorderMapper.updateById(update);
- dealLogBiz(model,Constants.YwLogType.WORKORDER_DISPATCH,model.getLoginUserInfo().getRealname(),user.getRealname());//璁板綍鏂板缓鏃ュ織
+
+ //娣诲姞寰呭姙淇℃伅
+ 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})
@@ -199,10 +237,10 @@
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(),"瀵逛笉璧凤紝鍛樺伐淇℃伅涓嶅瓨鍦紒");
- }
+// 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());
@@ -210,9 +248,42 @@
update.setDealStatus(Constants.TWO);
update.setDealUserId(update.getEditor());
update.setDealDate(update.getEditDate());
- update.setDealInfo(ywWorkorder.getDispatchInfo());
+ update.setDealInfo(ywWorkorder.getDealInfo());
ywWorkorderMapper.updateById(update);
- dealLogBiz(model,Constants.YwLogType.WORKORDER_DEAL,model.getLoginUserInfo().getRealname(),null);//璁板綍鏂板缓鏃ュ織
+
+
+ //鏍囪寰呭姙宸插鐞�
+ 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})
@@ -297,18 +368,28 @@
MPJLambdaWrapper<YwWorkorder> queryWrapper = new MPJLambdaWrapper<>();
queryWrapper.selectAll(YwWorkorder.class )
.selectAs(SystemUser::getRealname,YwWorkorder::getDealUserName)
+ .selectAs(Company::getName,YwWorkorder::getDealUserCompany)
.select("t3.realname",YwWorkorder::getCreatorName)
- .selectAs(Category::getName,YwWorkorder::getCategoryName)
+ .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);//璇诲彇闄勪欢淇℃伅
@@ -349,19 +430,35 @@
.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(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.eq(YwWorkorder::getId, pageWrap.getModel().getId());
}
+ if (pageWrap.getModel().getDispatchUserId() != null) {
+ 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()));
@@ -384,7 +481,8 @@
queryWrapper.eq(YwWorkorder::getRemark, pageWrap.getModel().getRemark());
}
if (pageWrap.getModel().getStatus() != null) {
- queryWrapper.eq(YwWorkorder::getStatus, pageWrap.getModel().getStatus());
+ 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());
@@ -404,6 +502,9 @@
}
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());
@@ -426,9 +527,6 @@
}
if (pageWrap.getModel().getDealStatus() != null) {
queryWrapper.eq(YwWorkorder::getDealStatus, pageWrap.getModel().getDealStatus());
- }
- if (pageWrap.getModel().getDispatchUserId() != null) {
- queryWrapper.eq(YwWorkorder::getDispatchUserId, pageWrap.getModel().getDispatchUserId());
}
if (pageWrap.getModel().getDispatchDate() != null) {
queryWrapper.ge(YwWorkorder::getDispatchDate, Utils.Date.getStart(pageWrap.getModel().getDispatchDate()));
@@ -457,10 +555,28 @@
queryWrapper.orderByAsc(sortData.getProperty());
}
}
+ 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 );
- return PageData.from(ywWorkorderMapper.selectPage(page, queryWrapper));
+
+ 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
@@ -468,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