yue 5 år sedan
förälder
incheckning
94977ac3c9

+ 28 - 6
src/main/java/com/jeeplus/modules/act/service/ActTaskService.java

@@ -1030,9 +1030,25 @@ public class ActTaskService extends BaseService {
 		// 提交流程任务
 		Map<String, Object> vars = Maps.newHashMap();
 		vars.put("pass", "yes".equals(act.getFlag())? true : false);
-
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
+	}
+
 
+	/**
+	 * 经理保存审核意见
+	 * @param act
+	 */
+	@Transactional(readOnly = false)
+	public void auditSave2(Act act) {
+		// 设置意见
+		act.setComment(("yes".equals(act.getFlag())?"[没有问题] ":"[存在问题] ")+act.getComment());
+		act.preUpdate();
+		// 对不同环节的业务逻辑进行操作
+		String taskDefKey = act.getTaskDefKey();
+		// 提交流程任务
+		Map<String, Object> vars = Maps.newHashMap();
+		vars.put("pass", "yes".equals(act.getFlag())? true : false);
+		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
 
 	/**
@@ -1042,9 +1058,9 @@ public class ActTaskService extends BaseService {
 	@Transactional(readOnly = false)
 	public void newAuditSave(Act act) {
 		// 设置意见
-		if ("yes".equals(act.getFlag())) {
+		if ("manager".equals(act.getFlag())) {
 			act.setComment("[项目经理]");
-		} else if ("yes".equals(act.getFlag())) {
+		} else if ("company".equals(act.getFlag())) {
 			act.setComment("[施工单位]");
 		} else {
 			act.setComment("[驳回]");
@@ -1056,11 +1072,17 @@ public class ActTaskService extends BaseService {
 		// 提交流程任务
 		Map<String, Object> vars = Maps.newHashMap();
 		if ("manager".equals(act.getFlag())) {
-			vars.put("manager", "manager");
+			vars.put("manager", true);
+			vars.put("company", false);
+			vars.put("reject", false);
 		} else if ("company".equals(act.getFlag())) {
-			vars.put("company","company" );
+            vars.put("manager", false);
+            vars.put("company", true);
+            vars.put("reject", false);
 		} else {
-			vars.put("reject", "reject");
+            vars.put("manager", false);
+            vars.put("company", false);
+            vars.put("reject", true);
 		}
 		/*vars.put("pass", "yes".equals(act.getFlag())? true : false);*/
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);

+ 15 - 0
src/main/java/com/jeeplus/modules/act/web/ActTaskController.java

@@ -366,6 +366,21 @@ public class ActTaskController extends BaseController {
 		return j;
 	}
 
+
+	/**
+	 * 审批
+	 * @param act
+	 */
+	@ResponseBody
+	@RequestMapping(value = "audit2")
+	public AjaxJson auditTask2(Act act) {
+		AjaxJson j = new AjaxJson();
+		actTaskService.auditSave2(act);
+		j.setMsg("审批成功");
+		return j;
+	}
+
+
 	/**
 	 * 施工交底审批
 	 * @param act*/

+ 3 - 3
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/entity/Construction.java

@@ -16,7 +16,7 @@ public class Construction extends ActEntity<Construction> {
     private String projectId;		// 项目号
     private String projectName;		// 项目名称
     private Date acceptDate;		// 接收图纸时间
-    private Date examineDate;		// 查看时间
+    private String examineDate;		// 查看时间
 
 
 
@@ -62,11 +62,11 @@ public class Construction extends ActEntity<Construction> {
         this.acceptDate = acceptDate;
     }
 
-    public Date getExamineDate() {
+    public String getExamineDate() {
         return examineDate;
     }
 
-    public void setExamineDate(Date examineDate) {
+    public void setExamineDate(String examineDate) {
         this.examineDate = examineDate;
     }
 }

+ 5 - 4
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/mapper/xml/ConstructionMapper.xml

@@ -107,10 +107,11 @@
 	<update id="update">
 		UPDATE xm_construction_clarificaiton SET
 			proc_ins_id = #{procInsId},
-			leave_type = #{leaveType},
-			start_time = #{startTime},
-			end_time = #{endTime},
-			reason = #{reason},
+			user_name = #{userName},
+			project_id = #{projectId},
+			project_name = #{projectName},
+			accept_date = #{acceptDate},
+			examine_date = #{examineDate},
 			update_by = #{updateBy.id},
 			update_date = #{updateDate},
 			remarks = #{remarks}

+ 2 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/ConstructionController.java

@@ -50,6 +50,8 @@ public class ConstructionController extends BaseController {
 		}
 		return entity;
 	}
+
+
 	
 
 	/**

+ 112 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/DivideController.java

@@ -0,0 +1,112 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.sg.managementcenter.activiti.web;
+
+import com.google.common.collect.Maps;
+import com.jeeplus.common.json.AjaxJson;
+import com.jeeplus.common.utils.DateUtils;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.core.web.BaseController;
+import com.jeeplus.modules.act.service.ActProcessService;
+import com.jeeplus.modules.act.service.ActTaskService;
+import com.jeeplus.modules.sg.managementcenter.activiti.entity.Construction;
+import com.jeeplus.modules.sg.managementcenter.activiti.service.ConstructionService;
+import org.activiti.engine.repository.ProcessDefinition;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+/**
+ * 施工交底Controller
+ * @author
+ * @version 2019-11-08
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/managementcenter/divide")
+
+public class DivideController extends BaseController {
+
+	@Autowired
+	private ConstructionService constructionService;
+	@Autowired
+	private ActProcessService actProcessService;
+	@Autowired
+	private ActTaskService actTaskService;
+	
+	@ModelAttribute
+	public Construction get(@RequestParam(required=false) String id) {
+		Construction entity = null;
+		if (StringUtils.isNotBlank(id)){
+			entity = constructionService.get(id);
+		}
+		if (entity == null){
+			entity = new Construction();
+		}
+		return entity;
+	}
+
+
+	
+
+	/**
+	 * 查看,增加,编辑请假申请表单页面
+	 */
+	@RequestMapping(value = "form/{mode}")
+	public String form(@PathVariable String mode, Construction construction, Model model) {
+		model.addAttribute("construction", construction);
+		return "modules/sg/managementcenter/activiti/divideAudit";
+//		return "modules/sg/managementcenter/activiti/constructionForm";
+	}
+
+	/**
+	 * 保存请假申请
+	 */
+	@ResponseBody
+	@RequestMapping(value = "save")
+	public AjaxJson save(Construction construction, Model model) throws Exception{
+		AjaxJson j = new AjaxJson();
+		/**
+		 * 后台hibernate-validation插件校验
+		 */
+		String errMsg = beanValidator(construction);
+		if (StringUtils.isNotBlank(errMsg)){
+			j.setSuccess(false);
+			j.setMsg(errMsg);
+			return j;
+		}
+
+
+		/**
+		 * 流程审批
+		 */
+		if (StringUtils.isBlank(construction.getId())){
+			//新增或编辑表单保存
+			constructionService.save(construction);//保存
+			// 启动流程
+			ProcessDefinition p = actProcessService.getProcessDefinition(construction.getAct().getProcDefId());
+			String title = construction.getCurrentUser().getName()+"在"+ DateUtils.getDateTime()+"发起"+p.getName();
+			actTaskService.startProcess(p.getKey(),  "xm_construction_clarificaiton", construction.getId(), title);
+			j.setMsg("发起流程审批成功!");
+			j.getBody().put("targetUrl",  "/act/task/process/");
+		}else{
+			//新增或编辑表单保存
+			constructionService.save(construction);//保存
+			construction.getAct().setComment(("yes".equals(construction.getAct().getFlag())?"[重新申请] ":"[销毁申请] "));
+			// 完成流程任务
+			Map<String, Object> vars = Maps.newHashMap();
+			vars.put("reapply", "yes".equals(construction.getAct().getFlag())? true : false);
+			actTaskService.complete(construction.getAct().getTaskId(), construction.getAct().getProcInsId(), construction.getAct().getComment(), construction.getContent(), vars);
+			j.setMsg("提交成功!");
+			j.getBody().put("targetUrl",  "/act/task/todo/");
+		}
+
+		return j;
+	}
+	
+
+
+}

+ 27 - 4
src/main/webapp/webpage/modules/sg/managementcenter/activiti/constructionAudit.jsp

@@ -2,7 +2,7 @@
 <%@ include file="/webpage/include/taglib.jsp"%>
 <html>
 <head>
-	<title>请假申请管理</title>
+	<title>施工交底管理</title>
 	<meta name="decorator" content="ani"/>
 	<!-- SUMMERNOTE -->
 	<%@include file="/webpage/include/summernote.jsp" %>
@@ -42,6 +42,27 @@
 				})
 			})
 
+			$("#agree2").click(function () {
+				jp.prompt("同意, 审批意见", function (message) {
+					jp.post("${ctx}/act/task/newAudit",
+							{
+								"taskId":"${construction.act.taskId}",
+								"taskName":"${construction.act.taskName}",
+								"taskDefKey":"${construction.act.taskDefKey}",
+								"procInsId":"${construction.act.procInsId}",
+								"procDefId":"${construction.act.procDefId}",
+								"flag":"company",
+								"comment":message
+
+							},
+							function (data) {
+								if(data.success){
+									jp.success(data.msg);
+									jp.go("${ctx}/act/task/todo")
+								}
+							})
+				})
+			})
 
 			$("#reject").click(function () {
 				jp.prompt("驳回, 审批意见", function (message) {
@@ -130,9 +151,10 @@
 						</div>
 						<hr>
 						<div class="form-group">
-							<label class="col-sm-2 control-label"><font color="red">*</font>查看时间:</label>
+							<label class="col-sm-2 control-label"><font color="red">*</font>备注说明:</label>
 							<div class="col-sm-10">
-								<fmt:formatDate value="${construction.examineDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
+									${fns:unescapeHtml(construction.examineDate)}
+<%--								<fmt:formatDate value="${construction.examineDate}" pattern="yyyy-MM-dd HH:mm:ss"/>--%>
 							</div>
 						</div>
 						<hr>
@@ -144,7 +166,8 @@
 							<div class="col-sm-3"></div>
 							<div class="col-sm-6">
 								<div class="form-group text-center">
-									<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="同 意" />&nbsp;
+									<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="施工单位" />&nbsp;
+									<input id="agree2" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="项目经理" />
 									<input id="reject" class="btn  btn-danger btn-lg btn-parsley" type="submit" value="驳 回" />&nbsp;
 								</div>
 							</div>

+ 12 - 8
src/main/webapp/webpage/modules/sg/managementcenter/activiti/constructionForm.jsp

@@ -2,7 +2,7 @@
 <%@ include file="/webpage/include/taglib.jsp"%>
 <html>
 <head>
-	<title>请假申请管理</title>
+	<title>施工交底管理</title>
 	<meta name="decorator" content="ani"/>
 	<!-- SUMMERNOTE -->
 	<%@include file="/webpage/include/summernote.jsp" %>
@@ -63,7 +63,7 @@
 						<div class="form-group">
 							<label class="col-sm-2 control-label"><font color="red">*</font>申请人:</label>
 							<div class="col-sm-10">
-								<div class='input-group' id='userName'>
+								<div id='userName'>
 									<input type='text'  name="userName" class="form-control required"  value="${construction.userName}"/>
 								</div>
 							</div>
@@ -72,7 +72,7 @@
 						<div class="form-group">
 							<label class="col-sm-2 control-label"><font color="red">*</font>项目号:</label>
 							<div class="col-sm-10">
-								<div class='input-group' id='projectId'>
+								<div id='projectId'>
 									<input type='text'  name="projectId" class="form-control required"  value="${construction.projectId}"/>
 								</div>
 							</div>
@@ -81,7 +81,7 @@
 						<div class="form-group">
 							<label class="col-sm-2 control-label"><font color="red">*</font>项目名称:</label>
 							<div class="col-sm-10">
-								<div class='input-group form-control' id='projectName'>
+								<div  id='projectName'>
 									<input type='text'  name="projectName" class="form-control required"  value="${construction.projectName}"/>
 								</div>
 							</div>
@@ -100,13 +100,17 @@
 						</div>
 						<hr>
 						<div class="form-group">
-							<label class="col-sm-2 control-label"><font color="red">*</font>查看时间:</label>
+							<label class="col-sm-2 control-label"><font color="red">*</font>备注说明:</label>
 							<div class="col-sm-10">
-								<div class='input-group form_datetime' id='examineDate'>
+<%--								<div class='input-group form_datetime' id='examineDate'>
 									<input type='text'  name="examineDate" class="form-control required"  value="<fmt:formatDate value="${construction.examineDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
 									<span class="input-group-addon">
-								<span class="glyphicon glyphicon-calendar"></span>
-							</span>
+										<span class="glyphicon glyphicon-calendar"></span>
+									</span>
+
+								</div>--%>
+								<div  id='examineDate'>
+									<textarea  name="examineDate" style="height: 100px" class="form-control required">${construction.examineDate}</textarea>
 								</div>
 							</div>
 						</div>

+ 176 - 0
src/main/webapp/webpage/modules/sg/managementcenter/activiti/divideAudit.jsp

@@ -0,0 +1,176 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>请假申请管理</title>
+	<meta name="decorator" content="ani"/>
+	<!-- SUMMERNOTE -->
+	<%@include file="/webpage/include/summernote.jsp" %>
+	<script type="text/javascript">
+
+		$(document).ready(function() {
+			jp.ajaxForm("#inputForm",function(data){
+				if(data.success){
+					jp.success(data.msg);
+					jp.go("${ctx}/managementcenter/divide");
+				}else{
+					jp.error(data.msg);
+					$("#inputForm").find("button:submit").button("reset");
+				}
+			});
+
+
+			$("#agree").click(function () {
+				jp.prompt("没有问题, 审批意见", function (message) {
+					jp.post("${ctx}/act/task/audit2",
+							{
+								"taskId":"${construction.act.taskId}",
+								"taskName":"${construction.act.taskName}",
+								"taskDefKey":"${construction.act.taskDefKey}",
+								"procInsId":"${construction.act.procInsId}",
+								"procDefId":"${construction.act.procDefId}",
+								"flag":"yes",
+								"comment":message
+
+							},
+							function (data) {
+								if(data.success){
+									jp.success(data.msg);
+									jp.go("${ctx}/act/task/todo")
+								}
+							})
+				})
+			})
+
+
+			$("#reject").click(function () {
+				jp.prompt("存在问题, 审批意见", function (message) {
+					jp.post("${ctx}/act/task/audit2",
+							{
+								"taskId":"${construction.act.taskId}",
+								"taskName":"${construction.act.taskName}",
+								"taskDefKey":"${construction.act.taskDefKey}",
+								"procInsId":"${construction.act.procInsId}",
+								"procDefId":"${construction.act.procDefId}",
+								"flag":"no",
+								"comment":message
+							},
+							function (data) {
+								if(data.success){
+									jp.success(data.msg);
+									jp.go("${ctx}/act/task/todo")
+								}
+							})
+				})
+			})
+
+
+			$('#startTime').datetimepicker({
+				format: "YYYY-MM-DD HH:mm:ss"
+			});
+			$('#endTime').datetimepicker({
+				format: "YYYY-MM-DD HH:mm:ss"
+			});
+			//富文本初始化
+			$('#reason').summernote({
+				height: 300,
+				lang: 'zh-CN',
+				readonly: true,
+				callbacks: {
+					onChange: function(contents, $editable) {
+						$("input[name='reason']").val($('#reason').summernote('code'));//取富文本的值
+					}
+				}
+			});
+		});
+	</script>
+</head>
+<body>
+<div class="wrapper wrapper-content">
+	<div class="row">
+		<div class="col-md-12">
+			<div class="panel panel-primary">
+				<div class="panel-heading">
+					<h3 class="panel-title">
+						<a class="panelButton"  href="#"  onclick="history.go(-1)"><i class="ti-angle-left"></i> 返回</a>
+					</h3>
+				</div>
+				<div class="panel-body">
+					<div class="form-group text-center">
+						<%--<h3>${oALeave.act.taskName}</h3>--%>
+					</div>
+					<form:form id="inputForm" modelAttribute="construction" action="${ctx}/managementcenter/divide/save" method="post" class="form-horizontal">
+						<form:hidden path="id"/>
+						<div class="form-group">
+							<label class="col-sm-2 control-label"><font color="red">*</font>申请人:</label>
+							<div class="col-sm-10">
+									${fns:unescapeHtml(construction.userName)}
+							</div>
+						</div>
+						<hr>
+						<div class="form-group">
+							<label class="col-sm-2 control-label"><font color="red">*</font>项目号:</label>
+							<div class="col-sm-10">
+									${fns:unescapeHtml(construction.projectId)}
+							</div>
+						</div>
+						<hr>
+						<div class="form-group">
+							<label class="col-sm-2 control-label"><font color="red">*</font>项目名称:</label>
+							<div class="col-sm-10">
+									${fns:unescapeHtml(construction.projectName)}
+							</div>
+						</div>
+						<hr>
+						<div class="form-group">
+							<label class="col-sm-2 control-label"><font color="red">*</font>接收图纸时间:</label>
+							<div class="col-sm-10">
+								<fmt:formatDate value="${construction.acceptDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
+							</div>
+						</div>
+						<hr>
+						<div class="form-group">
+							<label class="col-sm-2 control-label"><font color="red">*</font>备注说明:</label>
+							<div class="col-sm-10">
+									${fns:unescapeHtml(construction.examineDate)}
+<%--								<fmt:formatDate value="${construction.examineDate}" pattern="yyyy-MM-dd HH:mm:ss"/>--%>
+							</div>
+						</div>
+						<hr>
+					</form:form>
+
+
+					<c:if test="${construction.act.taskDefKey != '' && !construction.act.finishTask && construction.act.isNextGatewaty}">
+						<div class="row">
+							<div class="col-sm-3"></div>
+							<div class="col-sm-6">
+								<div class="form-group text-center">
+									<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="没有问题" />&nbsp;
+									<input id="reject" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="存在问题" />
+								</div>
+							</div>
+						</div>
+					</c:if>
+					<c:if test="${construction.act.taskDefKey != '' && !construction.act.finishTask && !construction.act.isNextGatewaty}">
+						<div class="row">
+							<div class="col-sm-3"></div>
+							<div class="col-sm-6">
+								<div class="form-group text-center">
+									<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="办 理" />&nbsp;
+								</div>
+							</div>
+						</div>
+					</c:if>
+
+					<c:if test="${not empty construction.id}">
+						<act:flowChart procInsId="${construction.act.procInsId}"/>
+						<act:histoicFlow procInsId="${construction.act.procInsId}" />
+					</c:if>
+
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+</body>
+</html>