jiangping
2024-05-28 a58ce000b2f84a998e91c8c77b290319c3de6996
最新版本
已修改6个文件
223 ■■■■ 文件已修改
admin/src/components/business/OperaHiddenDangerWindow.vue 140 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerParamCloudController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/HiddenDangerParamService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerParamServiceImpl.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
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")
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);
}
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);
}
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;
    }
}
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);