瀏覽代碼

批量归档报告号限制功能开发

user5 2 年之前
父節點
當前提交
6987772ab0

+ 14 - 0
src/main/java/com/jeeplus/modules/projectFilingBatch/web/ProjectFilingBatchController.java

@@ -624,6 +624,7 @@ public class ProjectFilingBatchController extends BaseController {
             ImportExcel ei = new ImportExcel(file, 1, 0);
             List<ProjectFilingBatchImportInfo> list = ei.getDataList(ProjectFilingBatchImportInfo.class);
             Set<String> reportNumberSet = new HashSet();
+            Set<String> prefixReportNumberSet = new HashSet();
             //对数据进行处理
             //将报告号进行筛选去重
             for (ProjectFilingBatchImportInfo info : list) {
@@ -638,10 +639,21 @@ public class ProjectFilingBatchController extends BaseController {
                     return map;
                 }
                 reportNumberSet.add(info.getReportNumber());
+                //对报告号进行分割,取“【”前的信息
+                String prefixReportNumber = info.getReportNumber().substring(0,info.getReportNumber().lastIndexOf("【"));
+                prefixReportNumberSet.add(prefixReportNumber);
             }
+
+            if(prefixReportNumberSet.size()>1){
+                map.put("success",false);
+                map.put("msg","导入项目报告号类型不一致!");
+                return map;
+            }
+
             //数据进行分组
             Map<String, List<ProjectFilingBatchImportInfo>> listMap = ruralProjectRecordsService.dataMessageDispose(list);
             List<String> projectIdList = Lists.newArrayList();
+            List<String> projectReportNumberList = Lists.newArrayList();
             for (String reportNumber: reportNumberSet) {
                 //判断报告号对应的项目是否存在
                 RuralProjectRecords records = ruralProjectRecordsService.getByReportNumber(reportNumber);
@@ -683,10 +695,12 @@ public class ProjectFilingBatchController extends BaseController {
                 jedisJson.lastIndexOf(";");
                 jedis.set(uuid + "_" + records.getId(),jedisJson,120);
                 projectIdList.add(records.getId());
+                projectReportNumberList.add(reportNumber);
             }
 
             map.put("success",true);
             map.put("projectIdList",projectIdList);
+            map.put("projectReportNumberList",projectReportNumberList);
             map.put("uuid",uuid);
             map.put("msg","导入成功");
         } catch (Exception e) {

+ 73 - 0
src/main/webapp/WEB-INF/tags/sys/gridselectBatchArchive.tag

@@ -0,0 +1,73 @@
+<%@ tag language="java" pageEncoding="UTF-8"%>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<%@ attribute name="id" type="java.lang.String" required="true" description="编号"%>
+<%@ attribute name="name" type="java.lang.String" required="false" description="隐藏域名称(ID)"%>
+<%@ attribute name="value" type="java.lang.String" required="false" description="隐藏域值(ID)"%>
+<%@ attribute name="labelName" type="java.lang.String" required="false" description="输入框名称(Name)"%>
+<%@ attribute name="labelValue" type="java.lang.String" required="false" description="输入框值(Name)"%>
+<%@ attribute name="fieldLabels" type="java.lang.String" required="true" description="表格Th里显示的名字"%>
+<%@ attribute name="fieldKeys" type="java.lang.String" required="true" description="表格Td里显示的值"%>
+<%@ attribute name="searchLabel" type="java.lang.String" required="true" description="表格Td里显示的值"%>
+<%@ attribute name="searchKey" type="java.lang.String" required="true" description="表格Td里显示的值"%>
+<%@ attribute name="floorLabel" type="java.lang.String" required="false" description="表格Td里显示的值"%>
+<%@ attribute name="floorKey" type="java.lang.String" required="false" description="表格Td里显示的值"%>
+<%@ attribute name="housenumberLabel" type="java.lang.String" required="false" description="表格Td里显示的值"%>
+<%@ attribute name="housenumberKey" type="java.lang.String" required="false" description="表格Td里显示的值"%>
+<%@ attribute name="title" type="java.lang.String" required="true" description="选择框标题"%>
+<%@ attribute name="url" type="java.lang.String" required="true" description="数据地址"%>
+<%@ attribute name="cssClass" type="java.lang.String" required="false" description="css样式"%>
+<%@ attribute name="cssStyle" type="java.lang.String" required="false" description="css样式"%>
+<%@ attribute name="disabled" type="java.lang.String" required="false" description="是否限制选择,如果限制,设置为disabled"%>
+<script type="text/javascript">
+function searchGrid${id}(){
+    var uri = "${url}?clientType=3";
+	top.layer.open({
+	    type: 2,
+	    area: ['90%','90%'],
+	    title:"${title}",
+	    name:'friend',
+        skin:"two-btns",
+	    content: encodeURI(uri+"&fieldLabels=${fieldLabels}&fieldKeys=${fieldKeys}&url="+uri+"&searchLabel=${searchLabel}&searchKey=${searchKey}&floorLabel=${floorLabel}&floorKey=${floorKey}&housenumberLabel=${housenumberLabel}&housenumberKey=${housenumberKey}") ,
+	    btn: ['确定', '关闭'],
+	    yes: function(index, layero){
+	    	 var iframeWin = layero.find('iframe')[0].contentWindow; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+	    	 var item = iframeWin.getSelectedItem();
+
+	    	 if(item == "-1"){
+		    	 return;
+	    	 }
+
+			var projectReportNumberList=[];
+			for(var i=0;i<item.length;i++){
+				var projectReportNumber = item[i].projectReportNumber;
+				projectReportNumber = projectReportNumber.substring(0, projectReportNumber.lastIndexOf('【'));
+				projectReportNumberList.push(projectReportNumber);
+			}
+
+			var distinctProjectReportNumberList = [...new Set(projectReportNumberList)];
+
+			if(distinctProjectReportNumberList.length>1){
+				top.layer.msg("选择的报告号类型不一致!", {icon: 5});
+				return;
+			}
+
+			 top.layer.close(index);//关闭对话框。
+           	 setClientInfo(item);
+		  },
+		  cancel: function(index){
+	       }
+	});
+
+}
+</script>
+
+	<input id="${id}Id"  type="hidden" />
+	<div class="input-group" style="width: 100%">
+		<%--<input id="${id}Name"  name="${labelName }" ${allowInput?'':'readonly="readonly"'}  type="text" value="${labelValue}" data-msg-required="${dataMsgRequired}"
+		class="${cssClass}" style="${cssStyle}"/>--%>
+       		 <span class="input-group-btn">
+	       		 <a href=javascript:void(0); style="font-size:14px;" onclick="searchGrid${id}($('#${id}Id').val(),'${id}')" id="${id}Button"  class="nav-btn nav-btn-add"><i class="fa fa-search-plus"></i> 添加项目信息</a>
+       		 </span>
+
+    </div>
+	 <label id="${id}Name-error" class="error" for="${id}Name" style="display:none"></label>

+ 1 - 1
src/main/webapp/webpage/modules/projectFilingBatch/projectChoiceLink.jsp

@@ -33,7 +33,7 @@
                 var label4 = $(this).parent().parent().parent().find(".codelabel4").html();
                 var label5 = $(this).parent().parent().parent().find(".codelabel5").html();
 				var label6 = $(this).parent().parent().parent().find(".codelabel6").html();
-                var data=  {'clientId':{'id':label,'name':label4,'uscCode':label5},'id':id,'name':label1,'linkPhone':label2,'linkMobile':label3,'createName':label6};
+                var data=  {'clientId':{'id':label,'name':label4,'uscCode':label5},'id':id,'name':label1,'linkPhone':label2,'linkMobile':label3,'createName':label6,'projectReportNumber':label5};
                 arr.push(data);
 			})
             return arr;

+ 62 - 7
src/main/webapp/webpage/modules/projectFilingBatch/projectFilingBatchForm.jsp

@@ -177,7 +177,7 @@
                                     "<td>" + obj.projectReportNumber + "</td>" +
                                     "<td class=\"text-center op-td\" >" +
                                     "<span class=\"op-btn op-btn-add\" onclick=\"addRowInfoForm("+tid+","+id+")\" title=\"添加\"><i class=\"fa fa-plus\"></i>&nbsp;添加</span>" +
-                                    "<span class=\"op-btn op-btn-delete\" onclick=\"delListRow(this," + id + ")\" title=\"删除\"><i class=\"glyphicon glyphicon-remove\"></i>&nbsp;删除</span>" +
+                                    "<span class=\"op-btn op-btn-delete\" onclick=\"delListRow(this," + id + ",'" + obj.projectReportNumber + "')\" title=\"删除\"><i class=\"glyphicon glyphicon-remove\"></i>&nbsp;删除</span>" +
                                     "</td>" +
                                     "</tr>")
                                 $("#projectList").append("<tr class='"+obj.id+"' style='display: none;'> <td colspan='4' style='padding: 0px;'>" +
@@ -371,6 +371,7 @@
 
 
         });
+        var projectReportNumberList = new Array();
 
         function uploadFile(id){
                 top.layer.open({
@@ -395,6 +396,31 @@
                             success : function(data) {
                                 //导入文件处理结果
                                 if (data.success){
+                                    var prefixProjectReportNumberList = new Array();
+
+                                    var obj = data.projectReportNumberList
+                                    for(var i=0;i<obj.length;i++){
+                                        projectReportNumberList.push(obj[i]);
+                                    }
+                                    for(var i=0;i<projectReportNumberList.length;i++){
+                                        var projectReportNumber = projectReportNumberList[i];
+                                        var prefixProjectReportNumber = projectReportNumber.substring(0, projectReportNumber.lastIndexOf('【'));
+                                        prefixProjectReportNumberList.push(prefixProjectReportNumber);
+                                    }
+                                    var distinctPrefixProjectReportNumberList = [...new Set(prefixProjectReportNumberList)];
+
+                                    if(distinctPrefixProjectReportNumberList.length>1){
+                                        for (var i=0; i<projectReportNumberList.length; i++){
+                                            for (var j=0; j<obj.length; j++){
+                                                if(projectReportNumberList[i] == obj[j]){
+                                                    projectReportNumberList.splice(i,1)
+                                                }
+                                            }
+                                        }
+                                        top.layer.msg("归档列表中选择的项目报告号类型不一致!", {icon: 5});
+                                        return;
+                                    }
+
                                     for(var i=0;i<data.projectIdList.length;i++){
                                         var arr=data.projectIdList[i];
                                         $.ajax({
@@ -426,7 +452,7 @@
                                                         "<td>" + d.projectReportNumber + "</td>" +
                                                         "<td class=\"text-center op-td\" >" +
                                                         "<span class=\"op-btn op-btn-add\" onclick=\"addRowInfoForm("+tid+","+id+")\" title=\"添加\"><i class=\"fa fa-plus\"></i>&nbsp;添加</span>" +
-                                                        "<span class=\"op-btn op-btn-delete\" onclick=\"delListRow(this," + id + ")\" title=\"删除\"><i class=\"glyphicon glyphicon-remove\"></i>&nbsp;删除</span>" +
+                                                        "<span class=\"op-btn op-btn-delete\" onclick=\"delListRow(this," + id + ",'" + d.projectReportNumber + "')\" title=\"删除\"><i class=\"glyphicon glyphicon-remove\"></i>&nbsp;删除</span>" +
                                                         "</td>" +
                                                         "</tr>")
                                                     $("#projectList").append("<tr class='"+d.id+"' style='display: none;'> <td colspan='4' style='padding: 0px;'>" +
@@ -711,6 +737,30 @@
         }
 
         function setClientInfo(obj) {
+            for(var i=0;i<obj.length;i++){
+                projectReportNumberList.push(obj[i].projectReportNumber);
+            }
+
+            var prefixProjectReportNumberList = new Array();
+            for(var i=0;i<projectReportNumberList.length;i++){
+                var projectReportNumber = projectReportNumberList[i];
+                var prefixProjectReportNumber = projectReportNumber.substring(0, projectReportNumber.lastIndexOf('【'));
+                prefixProjectReportNumberList.push(prefixProjectReportNumber);
+            }
+            var distinctPrefixProjectReportNumberList = [...new Set(prefixProjectReportNumberList)];
+
+            if(distinctPrefixProjectReportNumberList.length>1){
+                for (var i=0; i<projectReportNumberList.length; i++){
+                    for (var j=0; j<obj.length; j++){
+                        if(projectReportNumberList[i] == obj[j].projectReportNumber){
+                            projectReportNumberList.splice(i,1)
+                        }
+                    }
+                }
+                top.layer.msg("归档列表中选择的项目报告号类型不一致!", {icon: 5});
+                return;
+            }
+
             var arr;
             for(var i=0;i<obj.length;i++){
                 arr=obj[i].id;
@@ -742,7 +792,7 @@
                                 "<td>" + d.projectReportNumber + "</td>" +
                                 "<td class=\"text-center op-td\" >" +
                                 "<span class=\"op-btn op-btn-add\" onclick=\"addRowInfoForm("+tid+","+id+")\" title=\"添加\"><i class=\"fa fa-plus\"></i>&nbsp;添加</span>" +
-                                "<span class=\"op-btn op-btn-delete\" onclick=\"delListRow(this," + id + ")\" title=\"删除\"><i class=\"glyphicon glyphicon-remove\"></i>&nbsp;删除</span>" +
+                                "<span class=\"op-btn op-btn-delete\" onclick=\"delListRow(this," + id + ",'" + d.projectReportNumber + "')\" title=\"删除\"><i class=\"glyphicon glyphicon-remove\"></i>&nbsp;删除</span>" +
                                 "</td>" +
                                 "</tr>")
                             $("#projectList").append("<tr class='"+d.id+"' style='display: none;'> <td colspan='4' style='padding: 0px;'>" +
@@ -943,12 +993,17 @@
                 }
             });
         }
-        function delListRow(o,obj){
+        function delListRow(o,obj,projectReportNumber){
             var tr="#"+obj.id+" tr"
             var html=$(tr).length
             if(0 == html){
                 $(o).parent().parent().remove();
                 $(obj).parent().parent().parent().remove();
+                for (var i=0; i<projectReportNumberList.length; i++){
+                    if(projectReportNumberList[i] == projectReportNumber){
+                        projectReportNumberList.splice(i,1)
+                    }
+                }
             }else{
                 parent.layer.msg("该项目下有文件信息!", {icon: 5});
             }
@@ -1212,10 +1267,10 @@
             </div>
 
             <div class="form-group layui-row">
-                <div class="form-group-label"><h2>归档项目信息</h2></div>
+                <div class="form-group-label"><h2>归档项目信息<span style="color: red">  (根据档案管理要求,一次批量归档的报告号类型需一致,不能混装。如:全是“苏兴咨字【xx】xx”或全是“苏兴内审字【xx】xx”)</span></h2></div>
                 <div class="layui-item nav-btns" style="float: left;width: 100px">
-                    <sys:gridselectClientLink url="${ctx}/projectFilingBatch/projectFilingBatchInfo/finishListShow" id="constructionOrgList"   title="选择项目"
-                                              cssClass="form-control required" fieldLabels="${fns:urlEncode('项目编号')}" fieldKeys="name"  searchLabel="${fns:urlEncode('客户名称')}" searchKey="name"></sys:gridselectClientLink>
+                    <sys:gridselectBatchArchive url="${ctx}/projectFilingBatch/projectFilingBatchInfo/finishListShow" id="constructionOrgList"   title="选择项目"
+                                              cssClass="form-control required" fieldLabels="${fns:urlEncode('项目编号')}" fieldKeys="name"  searchLabel="${fns:urlEncode('客户名称')}" searchKey="name"></sys:gridselectBatchArchive>
 
                 </div>
                 <div id="addUserButton" class="layui-item nav-btns" style="float: left;">