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);