From 6e4aee48f8193688ac1412ee90f0e1cbfe988058 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 21 十一月 2024 10:00:11 +0800
Subject: [PATCH] 开发更新
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java | 191 ++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 179 insertions(+), 12 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 0223ac9..6b76641 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,19 +1,38 @@
package com.doumee.service.business.impl;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
+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.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.YwWorkorder;
+import com.doumee.dao.business.model.*;
+import com.doumee.dao.system.MultifileMapper;
+import com.doumee.dao.system.model.Multifile;
+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.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
import java.util.List;
/**
@@ -26,16 +45,87 @@
@Autowired
private YwWorkorderMapper ywWorkorderMapper;
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+ @Autowired
+ private MultifileMapper multifileMapper;
+ @Autowired
+ private YwProjectMapper ywProjectMapper;
+ @Autowired
+ private YwRoomMapper ywRoomMapper;
+ @Autowired
+ private YwBuildingMapper ywBuildingMapper;
@Override
- public Integer create(YwWorkorder ywWorkorder) {
- ywWorkorderMapper.insert(ywWorkorder);
- return ywWorkorder.getId();
+ @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+ public Integer create(YwWorkorder model) {
+
+ dealParamValid(model);
+ model.setCreator(model.getLoginUserInfo().getId());
+ model.setIsdeleted(Constants.ZERO);
+ model.setCreateDate(new Date());
+ model.setStatus(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(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);
+ }
+ }
+ if(fileList.size()>0){
+ multifileMapper.insert(fileList);
+ }
+ return model.getId();
+ }
+
+ private void dealParamValid(YwWorkorder model) {
+ if(Constants.equalsInteger(model.getAreaType(),Constants.ZERO)) {
+ //濡傛灉鏄競鍐呰淇紝蹇呴』閫夋嫨鎴挎簮淇℃伅
+ if(model.getRoomId()==null){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇烽�夋嫨姝g‘鐨勬埧婧愪俊鎭紒");
+ }
+ YwRoom room = ywRoomMapper.selectById(model.getRoomId());
+ if(room ==null || Constants.equalsInteger(room.getIsdeleted(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇烽�夋嫨姝g‘鐨勬埧婧愪俊鎭紒");
+ }
+ model.setBuildingId(room.getBuildingId());
+ model.setProjectId(room.getProjectId());
+ }else{
+ //濡傛灉鏄叕鍏卞尯鍩熻淇紝蹇呴』閫夋嫨妤煎畤淇℃伅
+ if(model.getBuildingId()==null){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇烽�夋嫨姝g‘鐨勬ゼ瀹囦俊鎭紒");
+ }
+ YwBuilding room = ywBuildingMapper.selectById(model.getRoomId());
+ if(room ==null || Constants.equalsInteger(room.getIsdeleted(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇烽�夋嫨姝g‘鐨勬ゼ瀹囦俊鎭紒");
+ }
+ model.setProjectId(room.getProjectId());
+ }
}
@Override
- public void deleteById(Integer id) {
- ywWorkorderMapper.deleteById(id);
+ public void deleteById(Integer id, LoginUserInfo user) {
+ YwWorkorder model = new YwWorkorder();
+ model.setId(id);
+ model.setEditDate(new Date());
+ model.setEditor(user.getId());
+ model.setIsdeleted(Constants.ONE);
+ ywWorkorderMapper.updateById(model);
}
@Override
@@ -45,18 +135,83 @@
}
@Override
- public void deleteByIdInBatch(List<Integer> ids) {
+ public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) {
if (CollectionUtils.isEmpty(ids)) {
return;
}
- ywWorkorderMapper.deleteBatchIds(ids);
+ for(Integer id : ids){
+ this.deleteById(id,user);
+ }
}
@Override
- public void updateById(YwWorkorder ywWorkorder) {
- ywWorkorderMapper.updateById(ywWorkorder);
- }
+ @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)) {
@@ -69,7 +224,17 @@
@Override
public YwWorkorder findById(Integer id) {
- return ywWorkorderMapper.selectById(id);
+ MPJLambdaWrapper<YwWorkorder> wrapper = new MPJLambdaWrapper<>();
+ wrapper.selectAll(YwWorkorder.class )
+ .selectAs(SystemUser::getRealname,YwWorkorder::getCreatorName)
+ .selectAs(SystemUser::getMobile,YwWorkorder::getCreatorPhone)
+ .selectAs(Company::getCompanyNamePath,YwWorkorder::getCreatorCompany)
+ .leftJoin(SystemUser.class,SystemUser::getId,YwWorkorder::getCreator)
+ .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
+ .eq(YwWorkorder::getId,id);
+ YwWorkorder model = ywWorkorderMapper.selectJoinOne(YwWorkorder.class,wrapper);
+ initFiles(model);//璇诲彇闄勪欢淇℃伅
+ return model;
}
@Override
@@ -80,6 +245,7 @@
@Override
public List<YwWorkorder> findList(YwWorkorder ywWorkorder) {
+ ywWorkorder.setIsdeleted(Constants.ZERO);
QueryWrapper<YwWorkorder> wrapper = new QueryWrapper<>(ywWorkorder);
return ywWorkorderMapper.selectList(wrapper);
}
@@ -88,6 +254,7 @@
public PageData<YwWorkorder> findPage(PageWrap<YwWorkorder> pageWrap) {
IPage<YwWorkorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
QueryWrapper<YwWorkorder> queryWrapper = new QueryWrapper<>();
+ pageWrap.getModel().setIsdeleted(Constants.ZERO);
Utils.MP.blankToNull(pageWrap.getModel());
if (pageWrap.getModel().getId() != null) {
queryWrapper.lambda().eq(YwWorkorder::getId, pageWrap.getModel().getId());
--
Gitblit v1.9.3