Files
SIPAIIS_WMS_JSSW/WebRoot/jsp/maintenance/abnormityHandleIssue.jsp

656 lines
28 KiB
Plaintext
Raw Normal View History

2026-01-16 14:13:44 +08:00
<%@ page language="java" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@page import="com.sipai.entity.maintenance.Abnormity" %>
<%request.setAttribute("Type_Run", Abnormity.Type_Run); %>
<%request.setAttribute("Type_Equipment", Abnormity.Type_Equipment); %>
<%request.setAttribute("Type_Facilities", Abnormity.Type_Facilities); %>
<%@page import="com.sipai.tools.CommString" %>
<%request.setAttribute("Active_False", CommString.Active_False); %>
<%request.setAttribute("Active_True", CommString.Active_True); %>
<%@ page import="com.sipai.entity.activiti.ProcessType" %>
<%request.setAttribute("B_Maintenance", ProcessType.B_Maintenance.getId()); %>
<%request.setAttribute("Workorder_Repair", ProcessType.Workorder_Repair.getId()); %>
<%@page import="com.sipai.tools.CommString" %>
<%request.setAttribute("FILE_TYPE_IMAGE", CommString.FILE_TYPE_IMAGE); %>
<%request.setAttribute("FILE_TYPE_VIDEO", CommString.FILE_TYPE_VIDEO); %>
<%request.setAttribute("FILE_TYPE_AUDIO", CommString.FILE_TYPE_AUDIO); %>
<style type="text/css">
.select2-container .select2-selection--single {
height: 34px;
line-height: 34px;
}
.select2-selection__arrow {
margin-top: 3px;
}
</style>
<script type="text/javascript">
var masterId = '${entity.id}'; //数据表
var tbName = 'tb_maintenance_problem_fille'; //数据表
var nameSpace = 'maintenance';//保存文件夹
var bucketName = 'maintenance';
var previews = new Array();
var previewConfigs = new Array();
function doSubmit() {
var cancel = $('#cancel').val();
if (cancel == '${Active_True}') {
//销单
$.post(ext.contextPath + "/maintenance/abnormity/doHandleProcessCancel1.do",
{id: $('#id').val()},
function (data) {
if (data.res == 1) {
$.post(ext.contextPath + "/maintenance/abnormity/doHandleProcessCancel2.do", $("#subForm").serialize(), function (data) {
if (data.res == 1) {
closeModal('subModalHandle')
$("#table").bootstrapTable('refresh');
} else if (data.res == 0) {
showAlert('d', '操作执行失败,请重试');
} else {
showAlert('d', data.res);
}
}, 'json');
} else if (data.res == 0) {
showAlert('d', '操作执行失败,请重试');
} else {
showAlert('d', data.res);
}
}, 'json');
} else {
//非销单
var compete = $('#compete').val();
if (compete == '${Active_True}') {
dohandle_y();
} else {
dohandle_n();
}
}
}
/**
* 指定班组执行 -- 抢单
*/
function dohandle_y() {
$('#subForm').data('bootstrapValidator')
.updateStatus('targetTeamsName', 'NOT_VALIDATED', null)
.validateField('targetTeamsName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/maintenance/abnormity/doHandleProcessCompete.do", $("#subForm").serialize(), function (data) {
if (data.res == 1) {
closeModal('subModalHandle')
$("#table").bootstrapTable('refresh');
} else if (data.res == 0) {
showAlert('d', '操作执行失败,请重试');
} else {
showAlert('d', data.res);
}
}, 'json');
}
}
/**
* 指定人员执行 -- 非抢单
*/
function dohandle_n() {
$('#subForm').data('bootstrapValidator')
.updateStatus('targetUsersName', 'NOT_VALIDATED', null)
.validateField('targetUsersName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/maintenance/abnormity/doHandleProcess.do", $("#subForm").serialize(), function (data) {
if (data.res == 1) {
closeModal('subModalHandle')
$("#table").bootstrapTable('refresh');
} else if (data.res == 0) {
showAlert('d', '操作执行失败,请重试');
} else {
showAlert('d', data.res);
}
}, 'json');
}
}
//弹出人员列表
var showUser4Handle = function () {
/*var userIds = $("#targetusers").val();
$.post(ext.contextPath + '/user/userForSelect4FirstActiviti.do', {
formId: "subForm",
hiddenId: "targetusers",
textId: "targetUsersName",
userIds: userIds,
type: 'repair'
}, function (data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});*/
var typeStr = '';
if($('#type').val() == 'run'){
typeStr = '${B_Maintenance}';
}
if($('#type').val() == 'equipment'){
typeStr = '${Workorder_Repair}';
}
var userIds = $("#targetusers").val();
$.post(ext.contextPath + '/user/layerUser.do', {
formId: "subForm",
hiddenId: "targetusers",
textId: "targetUsersName",
userIds: userIds,
unitId: unitId, //获取右上角的厂id
type: typeStr,
num: '-3'//公司运维下面的 缺陷工单
}, function (data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
//弹出班组列表
var showTeam4Handle = function () {
var userIds = $("#targetusers").val();
var jobIds = '';
$.post(ext.contextPath + '/user/teamForSelectByCompany.do', {
formId: "subForm",
hiddenId: "targetusers",
textId: "targetTeamsName",
userIds: userIds,
jobIds: jobIds
}, function (data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
function showFileInput(ctrlName) {
var control = $('#' + ctrlName);
control.fileinput('destroy');
control.fileinput({
language: 'zh', //设置语言
showUpload: false, //是否显示上传按钮
allowedFileExtensions: ['jpg', 'png', 'gif', 'pdf', 'doc', 'xls', 'docx', 'ppt', 'pptx', 'xlsx'],
showRemove: false,
showCaption: false,//是否显示标题
showBrowse: false,//选择按钮
showClose: false,//右上角关闭按钮
dropZoneEnabled: false,//是否显示拖拽区域
fileActionSettings: {
showDrag: false
},
browseClass: "btn btn-primary", //按钮样式
maxFileCount: 10, //表示允许同时上传的最大文件个数
enctype: 'multipart/form-data',
validateInitialCount: true,
previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
initialPreviewAsData: true,
initialPreview: previews,
initialPreviewConfig: previewConfigs,
layoutTemplates: {
actionUpload: ''
},
deleteUrl: ext.contextPath + "/base/deleteInputFile.do",
deleteExtraData: function () { //传参
var data = {
"tbName": tbName
};
return data;
}
});
$('#kvFileinputModal').on("hidden.bs.modal", function () {
$(this).removeData("bs.modal");
//modal重复打开会导致前面的滚动条失去作用
$('.modal').css("overflow", "auto");
});
}
//名称定义不可修改
var getFileList = function () {
$.post(ext.contextPath + '/base/getInputFileList_minio.do', {
masterId: masterId,
tbName: tbName,
bucketName: bucketName,
type: '${FILE_TYPE_IMAGE}'
}, function (data) {
if (data.length > 0) {
previews = new Array();
$('#maintenancefile').show();
for (var i = 0; i < data.length; i++) {
var previewConfig = new Object();
var path = 'data:image/png;base64,' + data[i].streamFile;
previews.push(path);
previewConfig['width'] = '50px';
previewConfig['caption'] = data[i].filename;
previewConfig['key'] = data[i].id;
previewConfig['showRemove'] = false;//不显示移除按钮
previewConfigs.push(previewConfig);
}
showFileInput("abnormityFileId");
} else {
$('#abnormityFileId').hide();
}
}, 'json');
};
//查看视频
var videoPreview = function () {
var w = '350px';
var h = '600px';
if (window.screen.width > 2500) {
w = '700px';
h = '1000px';
} else if (window.screen.width > 2000) {
w = '600px';
h = '900px';
} else if (window.screen.width > 1366) {
w = '450px';
h = '750px';
} else if (window.screen.width <= 1366) {
w = '350px';
h = '600px';
} else {
}
var path = '';
$.post(ext.contextPath + '/base/getInputFileList_minio.do', {
masterId: masterId,
tbName: tbName,
bucketName: bucketName,
type: '${FILE_TYPE_VIDEO}'
}, function (data) {
if (data.length > 0) {
path = data[0].streamFile;
layer.open({
type: 1,
title: '视频',
skin: 'layui-layer-rim', //加上边框
area: [w, h], //宽高
shadeClose: true,
content: '<video controls="" width="100%" height="90%" preload="" src="' + 'data:video/mp4;base64,' + path + '"></video>'
});
}
}, 'json');
}
//查看音频
var audioPreview = function (){
//查询是否存在音频
$.post(ext.contextPath + '/base/getInputFileList_minio.do', {
masterId: masterId,
tbName: tbName,
bucketName: bucketName,
type: '${FILE_TYPE_AUDIO}'
}, function (data) {
if (data.length > 0) {
var path = 'data:audio/mpeg;base64,' + data[0].streamFile;
//存在音频
// 设置语音源文件
document.getElementById('audioPlayer').src = path;
// 控制播放
document.getElementById('audioPlayer').play();
// 控制暂停
document.getElementById('audioPlayer').pause();
// 控制停止
document.getElementById('audioPlayer').pause();
document.getElementById('audioPlayer').currentTime = 0;
}else{
//不存在音频
document.getElementById("audioDiv").style.display = "none";
}
}, 'json');
}
$(function () {
var id = '${entity.id}';
getFileList();//获取图片
audioPreview();//获取音频
//加载文件
// getFileListMinioPic('abnormityFileId', 'view', masterId, previews, previewConfigs);
//初始化选择框方法在workflow.js里
processSelectNodeForHandle("${businessUnitHandle.taskid}");
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
targetUsersName: {
validators: {
notEmpty: {
message: '接单人员不能为空'
}
}
},
targetTeamsName: {
validators: {
notEmpty: {
message: '抢单班组不能为空'
}
}
}
}
});
$.post(ext.contextPath + '/maintenance/abnormity/showProcessView.do', {
id: id,
inModal: 'inModal'
}, function (data) {
$("#showView").html(data);
});
//初始化异常类型
var selelct_ = $("#type").select2({
placeholder: '请选择',
minimumResultsForSearch: 10
});
selelct_.val('${entity.type}').trigger("change")
typeButton('');
//默认下发给人员 隐藏班组
$("#selectDepts").attr("style", "display:none;");
//初始化抢单
var selelct_compete = $("#compete").select2({
minimumResultsForSearch: 10
});
//初始化销单
var selelct_cancel = $("#cancel").select2({
minimumResultsForSearch: 10
});
selelct_compete.on('change', function () {
var compete = $('#compete').val();
if ('${Active_True}' == compete) {//切换到抢单
$("#selectUsers").attr("style", "display:none;");
$("#selectDepts").attr("style", "display:block;");
$("#targetUsersName").val('');
}
if ('${Active_False}' == compete) {//切换到非抢单
$("#selectUsers").attr("style", "display:block;");
$("#selectDepts").attr("style", "display:none;");
$("#targetTeamsName").val('');
}
})
selelct_cancel.on('change', function () {
var cancel = $('#cancel').val();
if ('${Active_True}' == cancel) {//切换到销单
$("#cancelDiv").attr("style", "display:none;");
typeButton('销单');
}
if ('${Active_False}' == cancel) {//切换到非销单
$("#cancelDiv").attr("style", "display:block;");
typeButton('');
}
})
$('#planDate').datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format: 'yyyy-mm-dd',
}).on('hide', function (e) {
// $('#subForm').data('bootstrapValidator')
// .updateStatus('planDate', 'NOT_VALIDATED', null)
// .validateField('planDate');
});
$('#planDate').datepicker('setDate', '${nowDate.substring(0, 10)}');
//查询是否存在视频
$.post(ext.contextPath + '/base/getInputFileList_minio.do', {
masterId: masterId,
tbName: tbName,
bucketName: bucketName,
type: '${FILE_TYPE_VIDEO}'
}, function (data) {
if (data.length > 0) {
//存在视频
}else{
//不存在视频
document.getElementById("videoDiv").style.display = "none";
}
}, 'json');
})
// 按钮文字
function typeButton(data) {
if (data === '') {
if ('${entity.type}' === 'run') {
document.getElementById('typeButtonName').innerHTML = '下发运行异常'
} else {
document.getElementById('typeButtonName').innerHTML = '下发设备异常'
}
} else {
document.getElementById('typeButtonName').innerHTML = data
}
}
//选择设备根据厂区id和工艺段id选择厂内设备可多选
var showEquipment4SelectsFun = function (formId, hiddenId, textId) {
var equipmentIds = $('#' + hiddenId).val();
var bizId = $("#bizId").val();
var processSectionId = $("#processSectionId").val();
if (processSectionId == "" || processSectionId == null) {
showAlert('d', '请先选择工艺段');
} else {
$.post(ext.contextPath + '/equipment/showEquipmentCardForAbnormitySelects.do', {
formId: formId,
hiddenId: hiddenId,
textId: textId,
companyId: bizId,
equipmentIds: equipmentIds,
pSectionId: processSectionId
}, function (data) {
$("#equ4SelectDiv").html(data);
openModal("equipment4SelectModal");
});
}
};
</script>
<div class="modal fade" id="subModalHandle">
<div class="modal-dialog modal-xlg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">异常处理(${taskName})</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-7 col-xs-12">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm" enctype="multipart/form-data">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input type="hidden" class="form-control" id="id" value="${entity.id}">
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-4">
<input name="bizId" id="bizId" type="hidden" value="${entity.bizId}"/>
<p class="form-control-static">${entity.company.name}</p>
</div>
<label class="col-sm-2 control-label">工艺段</label>
<div class="col-sm-4">
<input name="processSectionId" id="processSectionId" type="hidden"
value="${entity.processSectionId}"/>
<p class="form-control-static">${entity.processSection.sname}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*异常类型</label>
<div class="col-sm-4">
<select class="form-control select2" id="type" name="type" style="width: 170px;"
disabled="disabled">
<option value="run">运行异常</option>
<option value="equipment">设备异常</option>
<option value="facilities">设施异常</option>
</select>
</div>
<c:if test="${entity.type == Type_Equipment}">
<label class="col-sm-2 control-label">异常设备</label>
<div class="col-sm-4">
<input id="equipmentIds" name="equipmentIds" type="hidden"
value="${entity.equipmentIds}"/>
<input class="form-control" id="equipname" name="equipname"
onclick="showEquipment4SelectsFun('subForm','equipmentIds','equipname');"
placeholder="请先选择厂区和工艺段" value="${entity.equipmentNames}">
</div>
</c:if>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">异常描述</label>
<div class="col-sm-10">
<input id="libraryId" name="libraryId" type="hidden" value=""/>
<textarea class="form-control " id="abnormityDescription"
name="abnormityDescription"
rows="2" placeholder="异常描述"
readonly>${entity.abnormityDescription}</textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" id="remark" name="remark" rows="2"
readonly>${entity.remark}</textarea>
</div>
</div>
<input type="hidden" class="form-control" name="id" value="${businessUnitHandle.id}">
<input type="hidden" class="form-control" name="processid"
value="${businessUnitHandle.processid}">
<input type="hidden" class="form-control" name="taskid"
value="${businessUnitHandle.taskid}">
<input type="hidden" class="form-control" name="businessid"
value="${businessUnitHandle.businessid}">
<input type="hidden" class="form-control" name="taskdefinitionkey"
value="${businessUnitHandle.taskdefinitionkey}">
<input type="hidden" class="form-control" name="unitid"
value="${businessUnitHandle.unitid}">
<c:if test="${entity.type == Type_Equipment}">
<div class="form-group">
<label class="col-sm-2 control-label">计划完成日期</label>
<div class="col-sm-4">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="planDate" name="planDate"
style="width: 232px;">
</div>
</div>
</div>
</c:if>
<c:if test="${compete == '0'}">
<div class="form-group">
<label class="col-sm-2 control-label">*是否抢单</label>
<div class="col-sm-6">
<select class="form-control select2" id="compete" name="compete"
style="width: 270px;">
<option value="${Active_True}">是</option>
<option value="${Active_False}" selected="selected">否</option>
</select>
</div>
</div>
</c:if>
<div class="form-group">
<label class="col-sm-2 control-label">销单</label>
<div class="col-sm-6">
<select class="form-control select2" id="cancel" name="cancel"
style="width: 270px;">
<option value="${Active_True}">是</option>
<option value="${Active_False}" selected="selected">否</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*下一节点</label>
<div class="col-sm-6">
<select class="form-control select2" id="routeNum" name="routeNum"
style="width: 270px;">
</select>
</div>
</div>
<div id="cancelDiv">
<div id="selectUsers" class="form-group">
<label class="col-sm-2 control-label">下发至</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="targetUsersName"
name="targetUsersName"
placeholder="工单接收人员" onclick="showUser4Handle();" autocomplete="off">
<input id="targetusers" name="targetusers" type="hidden" value=""/>
<input class="form-control" id="targetjobs" name="targetjobs" type="hidden"
value=""/>
</div>
</div>
<div id="selectDepts" class="form-group">
<label class="col-sm-2 control-label">抢单班组:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="targetTeamsName"
name="targetTeamsName"
placeholder="参与抢单班组" onclick="showTeam4Handle();" autocomplete="off">
</div>
</div>
</div>
<div class="form-group" id="videoDiv">
<label class="col-sm-2 control-label">视频</label>
<div class="col-sm-4">
<p class="form-control-static" style="cursor: pointer;color: #00c0ef;"
onclick="videoPreview();">存在视频,可点击查看</p>
</div>
</div>
<div class="form-group" id="audioDiv">
<label class="col-sm-2 control-label">语音</label>
<div class="col-sm-4">
<audio id="audioPlayer" src="" controls=""></audio>
</div>
</div>
<div class="form-group" style="margin:8px;">
<input type="file" name="abnormityFileId" id="abnormityFileId" multiple
class="file-loading"/>
</div>
</form>
</div>
<div class="col-md-5 col-xs-12" id="showView"></div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" id="typeButtonName" class="btn btn-primary" onclick="doSubmit()"
id="btn_update"></button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>