activiti示例

这是一个关于技术初评的页面,用于展示项目信息并管理评价数据。页面包含数据表格,支持编辑、保存和提交审核操作。提交审核会触发流程实例,更新业务状态,并发送待办事项给技术组长。代码中还包含了处理提交审核和数据保存的后台方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="/context/mytags.jsp"%>
<t:base type="jquery,easyui,tools,DatePicker"></t:base>
<link rel="stylesheet" href="plug-in/bid/css/bid.css" type="text/css">
<script type="text/javascript" src="webpage/common/common.js"></script>
<div class="easyui-layout" fit="true">
	<div  region="north" title="技术初评" style="padding: 8px; height: 90px;border-bottom-width: 0px;">
	  	<span class="tt_font">${bidProjectInfoPage.projectName}</span><br>
	  	<span>项目编号:${bidProjectInfoPage.projectNum}</span>
	  	<span class="mg_left_50">标段/子包:${bidProjectBidInfoEntity.bidName }/${bidProjectPackageInfoEntity.packageName }</span>
	  	<span class="mg_left_50">设备名称:${bidProjectBidInfoEntity.bidDesc }</span>
	  	<!-- 隐藏项目id、标段id、包id。保存时使用 -->
	  	<input type="hidden" id="projectId" value="${bidProjectInfoPage.id }">
	  	<input type="hidden" id="bidId" value="${bidProjectBidInfoEntity.id }">
	  	<input type="hidden" id="packageId" value="${bidProjectPackageInfoEntity.id }">
	  	<input type="hidden" id="zjid" value="${zjid}">
	  	<input type="hidden" id="status" value="${status}">
	</div>
	<div region="center" style="padding:0px;border:0px">
		<t:datagrid name="bidSkillEvaluationList" checkbox="false" fitColumns="true" title="" sortName="id" actionUrl="" idField="id" fit="true" queryMode="group">
			<t:dgToolBar title="提交审核" icon="icon-edit" funname="btnCommitVerify"></t:dgToolBar>
			<t:dgToolBar  title="编辑" icon="icon-edit"  funname="editRow"></t:dgToolBar>
			<t:dgToolBar  title="保存" icon="icon-save" url="bidSkillEvaluationController.do?saveEvaluation" funname="saveData"></t:dgToolBar>
			<t:dgToolBar  title="查看流程图" icon="icon-edit"  funname="showFlow"></t:dgToolBar>
		</t:datagrid>
	</div>
 </div>
 <script src = "webpage/com/hdkj/evaluation/bidSkillEvaluationList.js"></script>	
 <script type="text/javascript">
	//保存数据
	function saveData(title,addurl,gname){
		var status=$('#status').val();
		if(status!='0'&&status!='3'&&status!=''){
			tip("已经提交,无法再修改");
			return;
		}
		var projectId = $('#projectId').val();
		var bidId = $('#bidId').val();
		var packageId = $('#packageId').val();
		var columns = $('#'+gname).datagrid('getColumnFields');
		var length=(columns.length-2);
		
		if(!endEdit(gname))
			return false;
		var rows=$('#'+gname).datagrid('getRows');
		
		if(rows.length<=0){
			tip("没有需要保存的数据!")
			return false;
		}
		for(var j=0;j<rows.length;j++){
			for(var i=0;i<length;i++){
					var biddername=rows[j][columns[2+i]];
					var reason=rows[j][columns[3+i]];
					if(biddername=='不合格'&&reason==''){
						tip("请填写不合格对应的原因");
						var index= $('#'+gname).datagrid('getRowIndex', rows[j]);
						$('#'+gname).datagrid('beginEdit', index);
						return;
					}
			}
		}
		
		var checkData = new Array();
		var n = 0;
		for(var i=0;i<rows.length;i++){
			var str = '{';
			for(var j in columns){
				str += '"'+columns[j]+'":"'+rows[i][columns[j]]+'",';
			}
			str=str.substring(0,str.length-1);
			checkData[n] = str+'}';
			n++;
		}
		//保存之前可以进行校验
		var request = $.ajax({
			url: 'bidSkillEvaluationController/saveEvaluation.do',
			type: "POST",
			async: false,
			traditional :true,
			dataType: 'json',
			data: {checkData:checkData,projectId:projectId,bidId:bidId,packageId:packageId}		
		}).done(function(data) {
			if(data){
				if(data.success == false){
					tip(data.message);
				}else{
					$('#zjid').attr("value",data.zjid);
					$('#status').attr("value",data.status);
					tip(data.message);
					//$('#bidSkillEvaluationList').datagrid('reload');
				}
			}
		}).fail(function(jqXHR, textStatus){
			tip('服务器处理抛出异常或者没有响应');
		});	
	}
	//结束编辑
	function endEdit(gname){
		var  editIndex = $('#'+gname).datagrid('getRows').length-1;
		for(var i=0;i<=editIndex;i++){
			if($('#'+gname).datagrid('validateRow', i)){
				$('#'+gname).datagrid('endEdit', i);
			}else{
				tip("请选择必填项(带有红色三角形状的字段)!");
				return false;
			}
		}
		return true;
	}
	//编辑行
	function editRow(title,addurl,gname){
		//var rows=$('#'+gname).datagrid("getChecked");
		var rows=$('#'+gname).datagrid("getRows");
		if(rows.length==0){
			tip("请选择条目");
			return false;
		}
		for(var i=0;i<rows.length;i++){
			var index= $('#'+gname).datagrid('getRowIndex', rows[i]);
			$('#'+gname).datagrid('beginEdit', index);
		}
	}
	//取消编辑
	function reject(title,addurl,gname){
		$('#'+gname).datagrid('clearChecked');
		$('#'+gname).datagrid('rejectChanges');
	}
	
	//提交审核
	function btnCommitVerify(){
		var projectId = $('#projectId').val();
		var bidId = $('#bidId').val();
		var packageId = $('#packageId').val();
		var status=$('#status').val();
		if(status!='0'&&status!='3'){
			tip("已经提交过,无法再次提交!");
			return;
		}
		var zjid=$('#zjid').val();
		if(zjid==""){
			tip("请先保存数据!");
		}else{
			//开始提交
			var request = $.ajax({
				url: 'bidSkillEvaluationController/evaluationVerify.do',
				type: "POST",
				async: false,
				traditional :true,
				dataType: 'json',
				data: {zjid:zjid,projectId:projectId,bidId:bidId,packageId:packageId}		
			}).done(function(data) {
				if(data){
					if(data.success == false){
						tip(data.message);
					}else{
						$('#status').attr("value","1");
						tip(data.message);
					}
				}
			}).fail(function(jqXHR, textStatus){
				tip('服务器处理抛出异常或者没有响应');
			});	
		}
	}
	
	function showFlow(){
		var id=$('#zjid').val();
		if(id==""){
			tip("还未提交,没有流程图!");
			return;
		}
		var status=$('#status').val();
		if(status=='0'){
			tip("还未提交,没有流程图!");
			return;
		}
		$.dialog({
			content: "url:bidSkillEvaluationController.do?flowList&id="+id,
			lock : true,
			title:'查看流程',
			opacity : 0.3,
			zIndex: 2100,
			width:900,
			height:500,
			cache:false,
		    cancelVal: '关闭',
		    cancel: true /*为true等价于function(){}*/
			}).zindex();	
	}
 </script>
/*提交审核*/
	@RequestMapping("/evaluationVerify")
	public void evaluationVerify(HttpServletRequest request, HttpServletResponse response){
		PrintUtils pu = new PrintUtils();
		JSONObject json = new JSONObject();
		
		try{
			bidSkillEvaluationService.evaluationVerify(request);
			json.put("success", true);
			json.put("message", "提交审核成功");
			pu.printJsonData(json.toString(), response);
		} catch (Exception e) {
			e.printStackTrace();
			json.put("success", false);
			json.put("message", e.getMessage());
		}
	}
@Override
	public void evaluationVerify(HttpServletRequest request) {
		String projectId = request.getParameter("id");
		String bidId = request.getParameter("bidId");
		String packageId = request.getParameter("packageId");
		
		ActivitiUtis au=new ActivitiUtis();
		TSUser user = ResourceUtil.getSessionUser();
		String zjid=request.getParameter("zjid");
		
		String sql="select * from ACT_HI_PROCINST where BUSINESS_KEY_ ='"+zjid+"' ";
		List list=this.jdbcTemplate.queryForList(sql);
		ProcessInstance pi=null;
		if(list.size()==0){
			//流程定义只需要一次
			String deploySql="select count(1) from ACT_RE_DEPLOYMENT where name_='技术初评'";
			int count=this.jdbcTemplate.queryForInt(deploySql);
			if(count==0) {
				au.deploymentProcessDefinition_inputStream("diagrams/skillcp.bpmn","diagrams/skillcp.png","技术初评");
			}
			pi=au.startProcessInstance(zjid,"jscpProcess");
		}
		list=this.jdbcTemplate.queryForList(sql);
		String proc_inst_id;
		String proc_def_id;
		if(list.size()==0) {
			//流程实例ID
			proc_inst_id=pi.getId();
			//流程定义id
			proc_def_id=pi.getProcessDefinitionId();
		}else {
			 Map map1=(Map) list.get(0);
			 proc_inst_id=map1.get("PROC_INST_ID_").toString();
			 proc_def_id=map1.get("PROC_DEF_ID_").toString();
		}
		au.findMyPersonalTask("jscp",proc_def_id,proc_inst_id);
		
		//获取技术组长姓名
		String jscpzz="";
		String jscpzzsql="select * from bid_expert_project_info where is_jscpleader='Y' ";
		if(StringUtil.isNotEmpty(projectId)){
			jscpzzsql += " and project_id ='"+projectId+"'";
		}
		if(StringUtil.isNotEmpty(bidId)&&!bidId.equals("null")){
			jscpzzsql += " and bid_id ='"+bidId+"'";
		}
		if(StringUtil.isNotEmpty(packageId)&&!packageId.equals("null")){
			jscpzzsql += " and package_id ='"+packageId+"'";
		}
		List jscpzzlist=this.jdbcTemplate.queryForList(jscpzzsql);
		if(jscpzzlist.size()>0) {
			Map jscpzzmap=(Map) jscpzzlist.get(0);
			jscpzz=jscpzzmap.get("username").toString();
		}
		
		//代办表
		//先删除这个业务id相关的信息表,因为有可能是被打回来的
		this.deleteSmsByBusinessID(zjid);
		String smssql = "insert into t_s_sms(id,es_sender,create_by,es_sendtime,remark,es_title,es_content,es_type,es_receiver,update_name,update_by) VALUES "
				+ "('"+CommonUtils.getUUID()+"', '"+user.getRealName()+"','"+user.getUserName()+"',now(),'"+zjid+"', '技术初评审核','技术初评审核',3, '"+jscpzz+"','jscpzz','jscpsh')";
		jdbcTemplate.update(smssql);
		
		//更改业务表状态
		String bussql="update bid_skill_evaluation_zj set status=1 where id='"+zjid+"'";
		jdbcTemplate.update(bussql);
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值