From a58ce000b2f84a998e91c8c77b290319c3de6996 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 28 五月 2024 10:39:07 +0800
Subject: [PATCH] 最新版本

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerParamServiceImpl.java |   40 +++++++++-
 admin/src/components/business/OperaHiddenDangerWindow.vue                                                      |  140 +++++++++++++++++++++++++++--------
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberMapper.java                          |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java      |   28 ++++--
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/HiddenDangerParamService.java          |    4 +
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerParamCloudController.java         |    8 ++
 6 files changed, 175 insertions(+), 48 deletions(-)

diff --git a/admin/src/components/business/OperaHiddenDangerWindow.vue b/admin/src/components/business/OperaHiddenDangerWindow.vue
index 6882524..78dc481 100644
--- a/admin/src/components/business/OperaHiddenDangerWindow.vue
+++ b/admin/src/components/business/OperaHiddenDangerWindow.vue
@@ -58,7 +58,7 @@
                 </div>
               </div>
             </div>
-            <div class="item" v-if="model.status==1" style="width: 100%">
+            <div class="item" v-if="model.status==1||model.status==2" style="width: 100%">
               <div class="label">澶勭悊鍓�</div>
               <div class="value" v-if="model.dealBeforeFileList !=null && model.dealBeforeFileList.length">
                 <div v-for="item in model.dealBeforeFileList" :key="item.id" style="display: inline;margin-right: 20px">
@@ -103,7 +103,8 @@
               </div>
             </div>
             <div class="item" v-if="model.status==1 || model.status==2">
-              <div class="label">澶勭悊璇存槑</div>
+              <div class="label" v-if="model.status==1">澶勭悊璇存槑</div>
+              <div class="label" v-if="model.status==2">閫�鍥炶鏄�</div>
               <div class="value">{{model.checkInfo}}</div>
             </div>
           </div>
@@ -143,9 +144,9 @@
     </div>
     <!--  -->
     <template   v-slot:footer>
-      <el-button @click="dealDo"  type="primary"  v-if="model.status==0"  class="status-red">澶勭悊</el-button>
-      <el-button type="primary" plain v-if="model.status==0" @click="handleTransfer">杞氦</el-button>
-      <el-button @click="backDo"  v-if="model.status==0" type="danger"  >閫�鍥�</el-button>
+      <el-button @click="dealDo"  type="primary"  v-if="model.status==0&& model.checkUserId == userInfo.memberId"  class="status-red">澶勭悊</el-button>
+      <el-button type="primary" plain v-if="model.status==0 && model.checkUserId == userInfo.memberId" @click="handleTransfer">杞氦</el-button>
+      <el-button @click="backDo"  v-if="model.status==0&& model.checkUserId == userInfo.memberId" type="danger"  >閫�鍥�</el-button>
       <el-button @click="visible=false">杩斿洖</el-button>
     </template>
     <!--  鍚屾剰/鎷掔粷 -->
@@ -164,6 +165,30 @@
       <span slot="footer" class="dialog-footer">
         <el-button @click="isShowAppr = false">鍙栨秷</el-button>
         <el-button type="primary" @click="isShowAppr = false">纭畾</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog
+        append-to-body
+        title="杞氦"
+        style="text-align: center"
+        :visible.sync="isShowTransfer"
+        width="480px"
+    >
+      <el-form :model="transForm" ref="transForm" :rules="rulesTrans">
+        <el-form-item label="闅愭偅杞氦浜�" prop="memberId">
+          <el-select v-model="transForm.memberId" style="width: 300px"  filterable clearable placeholder="璇烽�夋嫨杞氦瀹夊叏鍛�">
+            <el-option
+                v-for="item in memberList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="isShowTransfer = false">鍙栨秷</el-button>
+        <el-button type="primary" @click="transferSubmit">纭畾</el-button>
       </span>
     </el-dialog>
     <!-- 闅愭偅 -->
@@ -212,7 +237,7 @@
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button @click="isShowProblem = false">鍙栨秷</el-button>
-        <el-button type="primary" @click="isShowProblem = false"
+        <el-button type="primary" :loading="transfering" @click="isShowProblem = false"
         >纭畾</el-button
         >
       </span>
@@ -223,22 +248,34 @@
 <script>
 import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
-import {findLogList} from "@/api/business/hiddenDanger";
+import { memberList } from '@/api/business/hiddenDangerParam'
+import {mapMutations} from "vuex";
 export default {
   components: { GlobalWindow },
   extends: BaseOpera,
-  data() {
+  data () {
     return {
       title: '璁垮棰勭害璇︽儏',
       visible: false,
-      dataId:null,
+      transfering: false,
+      dataId: null,
       model: { },
-      logList:[],
+      logList: [],
       isShowAppr: false,
       apprTitle: '鍚屾剰',
       param: {},
       isShowProblem: false,
-      rules: {}
+      isShowTransfer: false,
+      rules: {},
+      rulesTrans: {
+        memberId: [
+          { required: true, message: '璇烽�夋嫨' }
+        ]
+      },
+      memberList: [],
+      transForm: {
+        memberId: null
+      }
     }
   },
   created () {
@@ -248,38 +285,71 @@
     })
   },
   methods: {
-    dealDo(){},
-    backDo(){},
-    open(title,target){
-      this.title =title
-      this.visible=true
+    ...mapMutations(['userInfo']),
+    dealDo () { this.isShowProblem = true },
+    backDo () { this.isShowProblem = true },
+    open (title, target) {
+      this.title = title
+      this.visible = true
       this.model = {}
-      this.dataId =target.id
+      this.dataId = target.id
       this.getDetail()
       this.getLogList()
-
     },
-    getLogList(){
-      this.api.findLogList({hiddenDangerId:this.dataId})
-          .then(res =>{
-            this.logList =  res
+    transferSubmit () {
+      this.$refs.transForm.validate((valid) => {
+        // debugger
+        if (!valid) {
+          return
+        }
+        this.$dialog.actionConfirm('鎿嶄綔纭', '鎮ㄧ‘璁よ浆浜よ闅愭偅鎻愭姤鍚楋紵')
+          .then(() => {
+            this.transfering = true
+            this.api.transferHiddenDanger({
+              id: this.dataId,
+              checkUserId: this.transForm.memberId
+            })
+              .then(res => {
+                this.$tip.apiSuccess('杞氦鎴愬姛')
+                this.getDetail()
+                this.getLogList()
+              })
+              .catch(e => {
+              })
+              .finally(() => {
+                this.transfering = false
+              })
           })
+          .catch(() => {})
+      })
     },
-    getDetail(){
+    getLogList () {
+      this.api.findLogList({ hiddenDangerId: this.dataId })
+        .then(res => {
+          this.logList = res
+        })
+    },
+    getDetail () {
       this.api.detail(this.dataId)
-          .then(res =>{
-            this.model =  res
-          })
+        .then(res => {
+          this.model = res
+        })
     },
-    confirm() {
+    confirm () {
       console.log('--')
     },
-    handleTransfer() {
-      this.isShowProblem = true
+    handleTransfer () {
+      this.isShowTransfer = true
+      this.loadMemberList()
     },
-    reject() { },
-    handleAvatarSuccess() { },
-    beforeAvatarUpload() { }
+    loadMemberList () {
+      memberList({}).then(res => {
+        this.memberList = res
+      })
+    },
+    reject () { },
+    handleAvatarSuccess () { },
+    beforeAvatarUpload () { }
   }
 }
 </script>
@@ -444,6 +514,12 @@
             color: deepskyblue;
             font-size: 24px;
           }
+          .icon2 {
+            position: relative;
+            z-index: 11;
+            color: red;
+            font-size: 24px;
+          }
           .avatar {
             width: 40px;
             height: 40px;
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerParamCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerParamCloudController.java
index 42313d9..042c1a0 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerParamCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerParamCloudController.java
@@ -8,7 +8,9 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
+import com.doumee.dao.admin.request.MemberQuery;
 import com.doumee.dao.business.model.HiddenDangerParam;
+import com.doumee.dao.business.model.Member;
 import com.doumee.service.business.HiddenDangerParamService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -76,6 +78,12 @@
     public ApiResponse<PageData<HiddenDangerParam>> findPage (@RequestBody PageWrap<HiddenDangerParam> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
         return ApiResponse.success(hiddenDangerParamService.findPage(pageWrap));
     }
+    @ApiOperation("鏌ヨ闅愭偅鍖哄煙鍏ㄩ儴瀹夊叏鍛�")
+    @PostMapping("/findHiddenAreaMemberList")
+    @CloudRequiredPermission("business:member:query")
+    public ApiResponse<List<Member>> findVisitPage (@RequestBody HiddenDangerParam pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        return ApiResponse.success(hiddenDangerParamService.findHiddenAreaMemberList(pageWrap));
+    }
 
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberMapper.java
index 58e60bb..a0bf352 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberMapper.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.doumee.dao.business.model.Member;
+import com.github.yulichang.base.MPJBaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
@@ -14,7 +15,7 @@
  * @author 姹熻箘韫�
  * @date 2023/11/30 15:33
  */
-public interface MemberMapper extends BaseMapper<Member> {
+public interface MemberMapper extends MPJBaseMapper<Member> {
 
     void insertBatchSomeColumn(List<Member> list);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/HiddenDangerParamService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/HiddenDangerParamService.java
index a37234c..b7e3640 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/HiddenDangerParamService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/HiddenDangerParamService.java
@@ -5,6 +5,8 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.HiddenDangerParam;
+import com.doumee.dao.business.model.Member;
+
 import java.util.List;
 
 /**
@@ -96,4 +98,6 @@
      * @return long
      */
     long count(HiddenDangerParam hiddenDangerParam);
+
+    List<Member> findHiddenAreaMemberList(HiddenDangerParam pageWrap);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerParamServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerParamServiceImpl.java
index d0ad267..ee08189 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerParamServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerParamServiceImpl.java
@@ -9,22 +9,22 @@
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.HiddenDangerParamMapper;
 import com.doumee.dao.business.MemberMapper;
-import com.doumee.dao.business.model.CarDriver;
-import com.doumee.dao.business.model.HiddenDanger;
-import com.doumee.dao.business.model.HiddenDangerParam;
-import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.*;
 import com.doumee.service.business.HiddenDangerParamService;
 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 io.swagger.models.auth.In;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
+import org.checkerframework.checker.units.qual.C;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -226,4 +226,36 @@
         QueryWrapper<HiddenDangerParam> wrapper = new QueryWrapper<>(hiddenDangerParam);
         return hiddenDangerParamMapper.selectCount(wrapper);
     }
+    @Override
+    public   List<Member> findHiddenAreaMemberList(HiddenDangerParam pageWrap) {
+        QueryWrapper<HiddenDangerParam> wrapper = new QueryWrapper<>(pageWrap);
+        pageWrap.setIsdeleted(Constants.ZERO);
+        List<HiddenDangerParam> list = hiddenDangerParamMapper.selectList(wrapper);
+        List<Member> memberList = new ArrayList<>();
+        if(list!=null){
+            List<Integer> idList = new ArrayList<>();
+            for(HiddenDangerParam m : list){
+                String ids = m.getMemberIds();
+                if(StringUtils.isNotBlank(ids)){
+                    String[] t = ids.split(",");
+                    for(String d : t){
+                        try {
+                            idList.add(Integer.parseInt(d));
+                        }catch (Exception e){}
+                    }
+                }
+            }
+            if(idList.size()>0){
+                memberList = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>().
+                        selectAll(Member.class)
+                        .selectAs(Company::getCompanyNamePath,Member::getCompanyName)
+                        .leftJoin(Company.class, Company::getId,Member::getCompanyId)
+                        .eq(Member::getType,Constants.TWO)
+                        .eq(Member::getIsdeleted,Constants.ZERO)
+                        .in(Member::getId,idList)
+                );
+            }
+        }
+        return memberList;
+    }
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
index d5d3be5..c2d502c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
@@ -22,6 +22,7 @@
 import com.doumee.service.business.HiddenDangerService;
 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;
@@ -354,27 +355,30 @@
     public void transferHiddenDanger(HiddenDanger hiddenDanger){
         if(Objects.isNull(hiddenDanger)
                 || Objects.isNull(hiddenDanger.getId())
-                || Objects.isNull(hiddenDanger.getDealTime())
-                || Objects.isNull(hiddenDanger.getLoginUserInfo())
                 || Objects.isNull(hiddenDanger.getCheckUserId())
         ){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
-        HiddenDanger model = hiddenDangerMapper.selectById(hiddenDanger.getId());
+        HiddenDanger model = hiddenDangerMapper.selectJoinOne(HiddenDanger.class,new MPJLambdaWrapper<HiddenDanger>()
+                .selectAll(HiddenDanger.class)
+                .selectAs(Member::getName,HiddenDanger::getCheckorName)
+                        .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId)
+                .eq(HiddenDanger::getId,hiddenDanger.getId()));
         if(Objects.isNull(model)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌闅愭偅鏁版嵁");
         }
-        if (!model.getStatus().equals(Constants.ZERO)) {
+        if (!Constants.equalsInteger(model.getStatus(),Constants.ZERO)) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�佸凡娴佽浆!");
         }
-        if (!model.getCheckUserId().equals(hiddenDanger.getEditor())) {
+        if (!Constants.equalsInteger(model.getCheckUserId(),hiddenDanger.getEditor())) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"澶勭悊浜洪潪褰撳墠浜哄憳锛�");
         }
-        if(!(hiddenDanger.getStatus().equals(Constants.ONE)||hiddenDanger.getStatus().equals(Constants.TWO))){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓氬姟绫诲瀷閿欒锛�");
-        }
-        if(model.getCheckUserId().equals(hiddenDanger.getCheckUserId())){
+        if(Constants.equalsInteger(model.getCheckUserId(),hiddenDanger.getCheckUserId())){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏃犳硶杞氦缁欒嚜宸�");
+        }
+        Member member = memberMapper.selectById(hiddenDanger.getCheckUserId());
+        if(member == null || !Constants.equalsInteger(member.getType(), Constants.TWO) || Constants.equalsInteger(Constants.ZERO,member.getIsdeleted())){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝杞氦浜轰俊鎭笉瀛樺湪锛岃鍒锋柊椤甸潰閲嶈瘯锛�");
         }
         hiddenDanger.setEditor(hiddenDanger.getLoginUserInfo().getId());
         hiddenDanger.setEditDate(new Date());
@@ -383,8 +387,10 @@
         HiddenDangerLog hiddenDangerLog = new HiddenDangerLog();
         hiddenDangerLog.setIsdeleted(Constants.ZERO);
         hiddenDangerLog.setCreateDate(new Date());
-        hiddenDangerLog.setCreator(hiddenDanger.getCreator());
-        hiddenDangerLog.setTitle("闅愭偅閫�鍥�");
+        hiddenDangerLog.setCreator(hiddenDanger.getEditor());
+        hiddenDangerLog.setEditDate(hiddenDangerLog.getCreateDate());
+        hiddenDangerLog.setEditor(hiddenDanger.getCreator());
+        hiddenDangerLog.setTitle("鐢�"+StringUtils.defaultString(hiddenDanger.getCheckorName())+"杞氦缁�"+StringUtils.defaultString(member.getName()));
         hiddenDangerLog.setHiddenDangerId(hiddenDanger.getId());
         hiddenDangerLog.setObjType(Constants.ONE);
         hiddenDangerLogMapper.insert(hiddenDangerLog);

--
Gitblit v1.9.3