Files
SIPAIIS_WMS_JSSW/WebRoot/jsp/maintenance/abnormityHandleIssue.jsp
2026-01-16 14:13:44 +08:00

656 lines
28 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ 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>