소스 검색

领取报告号

user5 4 년 전
부모
커밋
aa40e2b405

+ 1 - 0
src/main/java/com/jeeplus/modules/projectreportnum/dao/ProjectReportNumDao.java

@@ -14,4 +14,5 @@ import com.jeeplus.modules.worklog.entity.WorkLog;
 public interface ProjectReportNumDao extends CrudDao<ReportNum> {
 public interface ProjectReportNumDao extends CrudDao<ReportNum> {
     int countNum(String userId);
     int countNum(String userId);
     void updateNum(String num);
     void updateNum(String num);
+    ReportNum getLastReportNum(ReportNum reportNum);
 }
 }

+ 18 - 0
src/main/java/com/jeeplus/modules/projectreportnum/entity/ReportNum.java

@@ -16,6 +16,8 @@ public class ReportNum extends DataEntity<ReportNum> {
 	private String num;		// 报告号
 	private String num;		// 报告号
 	private String state;     //使用状态 (1:已使用 0:未使用)
 	private String state;     //使用状态 (1:已使用 0:未使用)
 	private String userId;   //用户
 	private String userId;   //用户
+	private String parentId;  //父节点
+	private String stageId;   //阶段id
 
 
 
 
 	public String getNum() {
 	public String getNum() {
@@ -41,4 +43,20 @@ public class ReportNum extends DataEntity<ReportNum> {
 	public void setUserId(String userId) {
 	public void setUserId(String userId) {
 		this.userId = userId;
 		this.userId = userId;
 	}
 	}
+
+	public String getParentId() {
+		return parentId;
+	}
+
+	public void setParentId(String parentId) {
+		this.parentId = parentId;
+	}
+
+	public String getStageId() {
+		return stageId;
+	}
+
+	public void setStageId(String stageId) {
+		this.stageId = stageId;
+	}
 }
 }

+ 34 - 1
src/main/java/com/jeeplus/modules/projectreportnum/service/ProjectReportNumService.java

@@ -57,10 +57,11 @@ public class ProjectReportNumService extends CrudService<ProjectReportNumDao, Re
 			return "最多领取10个报告号";
 			return "最多领取10个报告号";
 		}
 		}
 		if(type.equals("one")){
 		if(type.equals("one")){
-			String num = serialNumTplService.genSerialNum(UserUtils.getUser().getCompany(), "10");
+			String num = serialNumTplService.genSerialNum(UserUtils.getUser().getCompany(), "92");
 			reportNum = new ReportNum();
 			reportNum = new ReportNum();
 			reportNum.setNum(num);
 			reportNum.setNum(num);
 			reportNum.setState("0");
 			reportNum.setState("0");
+			reportNum.setParentId("0");
 			super.save(reportNum);
 			super.save(reportNum);
 		}else {
 		}else {
              for(int i=0;i<10-count;i++){
              for(int i=0;i<10-count;i++){
@@ -68,6 +69,7 @@ public class ProjectReportNumService extends CrudService<ProjectReportNumDao, Re
 				 reportNum = new ReportNum();
 				 reportNum = new ReportNum();
 				 reportNum.setNum(num);
 				 reportNum.setNum(num);
 				 reportNum.setState("0");
 				 reportNum.setState("0");
+				 reportNum.setParentId("0");
 				 super.save(reportNum);
 				 super.save(reportNum);
 			 }
 			 }
 		}
 		}
@@ -91,6 +93,37 @@ public class ProjectReportNumService extends CrudService<ProjectReportNumDao, Re
 		super.delete(reportNum);
 		super.delete(reportNum);
 	}
 	}
 
 
+
+	@Transactional(readOnly = false)
+	public String  saveReportNumOnStage(ReportNum reportNum) {
+		int count = projectReportNumDao.countNum(UserUtils.getUser().getId());
+		if(count>=10){
+			return "最多领取10个报告号";
+		}
+		reportNum.setNum(reportNum.getNum()+"-"+reportNum.getStageId()+"-");
+		reportNum.setCreateBy(UserUtils.getUser());
+		//获取最后一个报告号数据信息
+		ReportNum lastReportNum = projectReportNumDao.getLastReportNum(reportNum);
+		if (null != lastReportNum){
+			lastReportNum.getNum().lastIndexOf("-");
+			//截取最后四位流水号
+			String substring = lastReportNum.getNum().substring(lastReportNum.getNum().lastIndexOf("-")+1, lastReportNum.getNum().length());
+			//转换为数字并递增
+			Integer substringInteger = Integer.parseInt(substring)+1;
+			//生成新的流水号
+			StringBuffer newSerialNum = new StringBuffer();
+			for(int x = 0; x < (4 - substringInteger.toString().length()); x++) {
+				newSerialNum.append("0");
+			}
+			newSerialNum.append(substringInteger);
+			reportNum.setNum(reportNum.getNum()+newSerialNum);
+		}else{
+			reportNum.setNum(reportNum.getNum()+"0001");
+		}
+		reportNum.setState("0");
+		super.save(reportNum);
+		return "领取成功";
+	}
 	
 	
 	
 	
 }
 }

+ 40 - 1
src/main/java/com/jeeplus/modules/projectreportnum/web/ProjectReportNumController.java

@@ -18,6 +18,9 @@ import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.projectreportnum.entity.ReportNum;
 import com.jeeplus.modules.projectreportnum.entity.ReportNum;
 import com.jeeplus.modules.projectreportnum.service.ProjectReportNumService;
 import com.jeeplus.modules.projectreportnum.service.ProjectReportNumService;
+import com.jeeplus.modules.serialnum.service.SerialNumTplService;
+import com.jeeplus.modules.sys.entity.MainDict;
+import com.jeeplus.modules.sys.entity.MainDictDetail;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.tools.utils.TwoDimensionCode;
 import com.jeeplus.modules.tools.utils.TwoDimensionCode;
 import freemarker.template.Configuration;
 import freemarker.template.Configuration;
@@ -169,10 +172,46 @@ public class ProjectReportNumController extends BaseController {
 		model.addAttribute("projectRecords",data);
 		model.addAttribute("projectRecords",data);
 		return "modules/projectreportnum/reportAuditProject";
 		return "modules/projectreportnum/reportAuditProject";
 	}
 	}
-	
 
 
+	/**
+	 * 跳转新增页面
+	 */
+	@RequestMapping(value = "getProjectReportNumStageForm")
+	public String getProjectReportNumStageForm(ReportNum reportNum,Model model, HttpServletRequest request) {
+		String view = request.getParameter("view");
+		String company = request.getParameter("company");
+		if("view".equals(view)){
+			view = "modules/projectreportnum/projectReportNumStageForm";
+		}else{
+			view = "modules/projectreportnum/projectReportNumStageForm";
+		}
+		model.addAttribute("reportNum",reportNum);
+		return view;
+	}
 
 
 
 
+	/**
+	 * 保存记录
+	 */
+	@ResponseBody
+	@RequestMapping(value = "saveReportNumOnStage")
+	public Map saveReportNumOnStage(HttpServletRequest request,ReportNum reportNum){
+		Map map = new HashMap();
+		try {
+			String type = request.getParameter("type");
+			String msg = projectReportNumService.saveReportNumOnStage(reportNum);//保存
+			map.put("msg",msg);
+			if(msg.length()>5){
+				map.put("code","0");
+			}else {
+				map.put("code","1");
+			}
+		}catch (Exception e){
+			map.put("msg","领取失败");
+			map.put("code","0");
+		}
+		return map;
+	}
 
 
 	
 	
 
 

+ 18 - 6
src/main/resources/mappings/modules/projectreportnum/ProjectReportNumDao.xml

@@ -11,8 +11,8 @@
 		a.remarks AS "remarks",
 		a.remarks AS "remarks",
 		a.del_flag AS "delFlag",
 		a.del_flag AS "delFlag",
 		a.num AS "num",
 		a.num AS "num",
-		a.state AS "state"
-
+		a.state AS "state",
+		a.parent_id as "parentId"
 	</sql>
 	</sql>
 	
 	
     
     
@@ -62,7 +62,8 @@
 			remarks,
 			remarks,
 			del_flag,
 			del_flag,
 			num,
 			num,
-			state
+			state,
+			parent_id
 		) VALUES (
 		) VALUES (
 			#{id},
 			#{id},
 			#{createBy.id},
 			#{createBy.id},
@@ -72,7 +73,8 @@
 			#{remarks},
 			#{remarks},
 			#{delFlag},
 			#{delFlag},
 			#{num},
 			#{num},
-			#{state}
+			#{state},
+			#{parentId}
 		)
 		)
 	</insert>
 	</insert>
 	
 	
@@ -88,9 +90,19 @@
 		DELETE FROM report_num
 		DELETE FROM report_num
 		WHERE id = #{id}
 		WHERE id = #{id}
 	</update>
 	</update>
-	
 
 
-	
+
+	<select id="getLastReportNum" resultType="com.jeeplus.modules.projectreportnum.entity.ReportNum" >
+		SELECT
+		<include refid="infoColums"/>
+		FROM report_num a
+
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL} and a.state = '0' and a.create_by = #{createBy.id}
+			and a.num like concat('%',#{num},'%')
+		</where>
+		ORDER BY a.num desc limit 0,1
+	</select>
 	
 	
 
 
 
 

+ 80 - 2
src/main/webapp/webpage/modules/projectreportnum/projectReportNumList.jsp

@@ -35,7 +35,7 @@
 			<div class="contentShadow layui-form contentDetails">
 			<div class="contentShadow layui-form contentDetails">
 				<div class="nav-btns">
 				<div class="nav-btns">
 					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="getOne()" title="领取"><i class="fa fa-plus"></i>&nbsp;领一个</button>
 					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="getOne()" title="领取"><i class="fa fa-plus"></i>&nbsp;领一个</button>
-					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="getMore()" title="领取"><i class="fa fa-plus"></i>&nbsp;领多个</button>
+<%--					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="getMore()" title="领取"><i class="fa fa-plus"></i>&nbsp;领多个</button>--%>
 					<div style="clear: both;"></div>
 					<div style="clear: both;"></div>
 				</div>
 				</div>
 				<table class="oa-table layui-table" id="contentTable">
 				<table class="oa-table layui-table" id="contentTable">
@@ -58,7 +58,8 @@
                 {field:'num',align:'center',  title: '报告号'}
                 {field:'num',align:'center',  title: '报告号'}
 				,{field:'op',align:'center',title:"操作",width:200,templet:function(d){
 				,{field:'op',align:'center',title:"操作",width:200,templet:function(d){
 						var xml = "";
 						var xml = "";
-						 xml +="<a href=\"${ctx}/projectreportnum/projectReportNum/download?number=" +encodeURIComponent(encodeURIComponent( d.num ))+ "\"    class=\"op-btn op-btn-edit\"><i class=\"fa fa-edit\"></i> 生成报告模板</a>";
+						 //xml +="<a href=\"${ctx}/projectreportnum/projectReportNum/download?number=" +encodeURIComponent(encodeURIComponent( d.num ))+ "\"    class=\"op-btn op-btn-edit\"><i class=\"fa fa-edit\"></i> 生成报告模板</a>";
+						 xml +="<a href=\"javascript:void(0)\" onclick=\"reportNumOnStage('阶段报告号新增','${ctx}/projectreportnum/projectReportNum/getProjectReportNumStageForm?num="+d.num+"&parentId="+d.id+"','70%', '50%');\" class=\"op-btn op-btn-edit\"><i class=\"fa fa-edit\"></i> 添加阶段报告号</a>";
 						 return xml
 						 return xml
 				}
 				}
 				}
 				}
@@ -69,6 +70,7 @@
                 <c:if test="${index.index != 0}">,</c:if>
                 <c:if test="${index.index != 0}">,</c:if>
                 {
                 {
                     "index":"${index.index+1}"
                     "index":"${index.index+1}"
+                    ,"id":"${reportNum.id}"
                     ,"num":"${reportNum.num}"
                     ,"num":"${reportNum.num}"
                 }
                 }
                 </c:forEach>
                 </c:forEach>
@@ -80,6 +82,82 @@
     })
     })
 </script>
 </script>
 <script>
 <script>
+	function reportNumOnStage(title,url,width,height,target){
+		var company=$("#company").val();
+		url=url+"&company="+company;
+		if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+			width='auto';
+			height='auto';
+		}else{//如果是PC端,根据用户设置的width和height显示。
+
+		}
+
+		top.layer.open({
+			type: 2,
+			area: [width, height],
+			title: title,
+			maxmin: true, //开启最大化最小化按钮
+			content: url ,
+			skin:"two-btns",
+			btn: ['提交', '关闭'],
+			yes: function(index, layero){
+				var body = top.layer.getChildFrame('body', index);
+				var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+				var inputForm = body.find('#inputForm');
+				var top_iframe;
+				if(target){
+					top_iframe = target;//如果指定了iframe,则在改frame中跳转
+				}else{
+					top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+				}
+				inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+				var $document = iframeWin.contentWindow.document;
+				if(iframeWin.contentWindow.doSubmit() ){
+
+				}else{
+					return false;
+				}
+				var index1 = parent.layer.load(0, {shade: [0.1, 'tranparent']});
+				formSubmit($document,"inputForm",index,index1);
+			},
+			cancel: function(index){
+			}
+		});
+
+	}
+	function formSubmit($document,inputForm,index,index1){
+		var validateForm = $($document.getElementById(inputForm)).validate({
+			submitHandler: function(form){
+				loading('正在提交,请稍等...');
+				form.submit();
+			},
+			errorContainer: "#messageBox",
+			errorPlacement: function(error, element) {
+				$($document.getElementById("#messageBox")).text("输入有误,请先更正。");
+				if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+					error.appendTo(element.parent().parent());
+				} else {
+					error.insertAfter(element);
+				}
+			}
+		});
+		if(validateForm.form()){
+			$($document.getElementById(inputForm)).ajaxSubmit({
+				success:function(data) {
+					top.layer.close(index);
+					layer.msg(data.msg, {icon: 1});
+					window.location.reload();
+				},error:function(){
+					layer.msg("操作失败",{icon:2});
+					window.location.reload();
+				}
+			});
+		}else {
+			parent.layer.msg("信息未填写完整!", {icon: 5});
+		}
+	}
+</script>
+<script>
     resizeListWindow1();
     resizeListWindow1();
     $(window).resize(function(){
     $(window).resize(function(){
         resizeListWindow1();
         resizeListWindow1();

+ 1 - 1
src/main/webapp/webpage/modules/projectreportnum/projectReportNumSel.jsp

@@ -35,7 +35,7 @@
 			<div class="contentShadow layui-form contentDetails">
 			<div class="contentShadow layui-form contentDetails">
 				<div class="nav-btns">
 				<div class="nav-btns">
 					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="getOne()" title="领取"><i class="fa fa-plus"></i>&nbsp;领一个</button>
 					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="getOne()" title="领取"><i class="fa fa-plus"></i>&nbsp;领一个</button>
-					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="getMore()" title="领取"><i class="fa fa-plus"></i>&nbsp;领多个</button>
+<%--					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="getMore()" title="领取"><i class="fa fa-plus"></i>&nbsp;领多个</button>--%>
 					<div style="clear: both;"></div>
 					<div style="clear: both;"></div>
 				</div>
 				</div>
 				<table class="oa-table layui-table"  id="contentTable" lay-filter="contentTable">
 				<table class="oa-table layui-table"  id="contentTable" lay-filter="contentTable">

+ 98 - 0
src/main/webapp/webpage/modules/projectreportnum/projectReportNumStageForm.jsp

@@ -0,0 +1,98 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>添加阶段报告</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+
+		function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+		   var stageId=$("#stageId").val();
+		   if(stageId==null||stageId==""){
+               top.layer.msg('阶段信息不能为空!', {icon: 0});
+               return false;
+		   }
+			$("#inputForm").submit();
+		  return true;
+		}
+        var validateForm;
+		$(document).ready(function() {
+		    if( $("#id").val()!=null&& $("#id").val()!=''){
+                $("#detailKey").attr("readonly",true);
+			}
+			validateForm = $("#inputFormAdd").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+
+            $("#typeName").blur(function(){
+                var typeName = $(this).val();
+				if("achievement_type" == typeName || "supporting_document_data_type" == typeName){
+                    $("#achievementParentIdDiv").show();
+                }else{
+                    $("#achievementParentIdDiv").hide();
+                }
+            })
+
+            $("#typeName").blur(function(){
+                var reviewStandard = $(this).val();
+                if("reviewStandard" == reviewStandard){
+                    $("#reviewStandardParentIdDiv").show();
+                }else{
+                    $("#reviewStandardParentIdDiv").hide();
+                }
+            })
+		});
+	</script>
+</head>
+<body>
+<div class="single-form">
+	<div class="container view-form">
+		<form:form id="inputForm" modelAttribute="reportNum" action="${ctx}/projectreportnum/projectReportNum/saveReportNumOnStage" method="post" class="form-horizontal">
+			<input type="hidden" id="parentId" name="parentId" value="${reportNum.parentId}">
+		<sys:message content="${message}"/>
+			<div class="form-group layui-row first">
+				<div class="form-group-label"><h2>阶段报告信息</h2></div>
+				<div class="layui-item layui-col-sm6"  style="width:50%">
+					<label class="layui-form-label double-line">阶段报告前缀:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" name="num" readonly="true" class="form-control layui-input" value="${reportNum.num}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6" style="width:50%">
+					<label class="layui-form-label double-line"><span class="require-item">*</span>选择阶段信息:</label>
+					<div class="layui-input-block">
+						<form:select id="stageId" path="stageId"  htmlEscape="false" class="form-control simple-select required">
+							<form:option value=""></form:option>
+							<optgroup label="决策阶段"/>
+							<form:options items="${fns:getContentTypeList('1')}" itemLabel="typeName" itemValue="typeId"></form:options>
+							<optgroup label="设计阶段"/>
+							<form:options items="${fns:getContentTypeList('2')}" itemLabel="typeName" itemValue="typeId"></form:options>
+							<optgroup label="发承包阶段"/>
+							<form:options items="${fns:getContentTypeList('3')}" itemLabel="typeName" itemValue="typeId"></form:options>
+							<optgroup label="实施阶段"/>
+							<form:options items="${fns:getContentTypeList('4')}" itemLabel="typeName" itemValue="typeId"></form:options>
+							<optgroup label="竣工阶段"/>
+							<form:options items="${fns:getContentTypeList('5')}" itemLabel="typeName" itemValue="typeId"></form:options>
+							<optgroup label="运营阶段"/>
+							<form:options items="${fns:getContentTypeList('6')}" itemLabel="typeName" itemValue="typeId"></form:options>
+						</form:select>
+					</div>
+				</div>
+			</div>
+		</form:form>
+	</div>
+</div>
+</body>
+</html>