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 |  116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 110 insertions(+), 6 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..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,5 +1,6 @@
 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;
@@ -12,19 +13,25 @@
 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.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;
 
@@ -39,6 +46,10 @@
     @Autowired
     private YwWorkorderMapper ywWorkorderMapper;
     @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private MultifileMapper multifileMapper;
+    @Autowired
     private YwProjectMapper ywProjectMapper;
     @Autowired
     private YwRoomMapper ywRoomMapper;
@@ -46,6 +57,7 @@
     private YwBuildingMapper ywBuildingMapper;
 
     @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public Integer create(YwWorkorder model) {
 
         dealParamValid(model);
@@ -56,6 +68,28 @@
         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();
     }
 
@@ -111,13 +145,73 @@
     }
 
     @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 +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

--
Gitblit v1.9.3