Kaynağa Gözat

地区负责人功能提交

user5 1 yıl önce
ebeveyn
işleme
a0c7f0e40a

+ 1 - 1
src/main/java/com/jeeplus/modules/areaStaff/dao/AreaStaffDao.java

@@ -29,7 +29,7 @@ public interface AreaStaffDao extends TreeDao<AreaStaffInfo> {
      * @param areaId
      * @return
      */
-    AreaStaffInfo getEffectiveArea(String areaId);
+    List<AreaStaffInfo> getEffectiveArea(String areaId);
 
     /**
      * 根据部门id查询信息

+ 51 - 5
src/main/java/com/jeeplus/modules/areaStaff/service/AreaStaffService.java

@@ -319,8 +319,8 @@ public class AreaStaffService  extends TreeService<AreaStaffDao, AreaStaffInfo>
 
     public AreaStaffInfo getEffectiveArea(String officeId,String areaId) {
         //根据地区id查询是否存在
-        AreaStaffInfo info = dao.getEffectiveArea(areaId);
-        if(null != info){
+        List<AreaStaffInfo> infoList = dao.getEffectiveArea(areaId);
+        for (AreaStaffInfo info : infoList) {
             if(StringUtils.isNotBlank(info.getParentIds())){
                 String[] parentIds = info.getParentIds().split(",");
                 List<String> parentIdList = Arrays.asList(parentIds);
@@ -415,22 +415,42 @@ public class AreaStaffService  extends TreeService<AreaStaffDao, AreaStaffInfo>
                 List<AreaStaffInfo> areaInfo = dao.getAreaStaffInfoByParentIdAndStandardDetail(directorApplication.getArea().getId(), officeInfo.getId());
                 if(null != areaInfo && areaInfo.size()>0){
                     //如果地区不为空,则查询地区下是否存在地区负责人项,若存在,则直接添加人员信息
-                    List<AreaStaffInfo> masterType = dao.getAreaStaffInfoByParentIdAndType("master", officeInfo.getId());
+                    List<AreaStaffInfo> masterType = dao.getAreaStaffInfoByParentIdAndType("master", areaInfo.get(0).getId());
                     if(null != masterType && masterType.size()>0){
+                        //查询该地区下是否已经存在该人员信息
                         //如果地区负责人标签存在则直接添加人员信息
-                        this.saveUser(masterType.get(0),user);
+                        List<AreaStaffInfo> userList = dao.getAreaStaffInfoByParentIdAndStandardDetail(user.getId(), masterType.get(0).getId());
+                        if(userList.size() == 0){
+                            this.saveUser(masterType.get(0),user);
+                        }else{
+                            map.put("success",false);
+                            map.put("message","申请人已经是该地区负责人,无法重复添加");
+                            return map;
+                        }
                     }else{
                         //如果地区负责人标签不存在,则需添加标签后再添加人员信息
                         //添加地区负责人和区域员工分支
                         AreaStaffInfo areaMasterInfo = this.saveMasterType(areaInfo.get(0));
                         this.saveUser(areaMasterInfo,user);
                     }
+
+                    List<AreaStaffInfo> staffType = dao.getAreaStaffInfoByParentIdAndType("staff", areaInfo.get(0).getId());
+
+                    if(null != staffType && staffType.size()>0){
+
+                    }else{
+                        //如果地区员工标签不存在,则需添加标签
+                        this.saveStaffType(areaInfo.get(0));
+                    }
                 }else{
                     //如果地区为空则进行地区添加和地区负责人添加
                     AreaStaffInfo areaStaffInfo = this.saveAreaType(officeInfo, directorApplication.getArea().getId());
                     //添加地区负责人和区域员工分支
                     AreaStaffInfo areaMasterInfo = this.saveMasterType(areaStaffInfo);
+                    //如果地区员工标签不存在,则需添加标签
+                    this.saveStaffType(areaStaffInfo);
                     this.saveUser(areaMasterInfo,user);
+
                 }
 
             }else{
@@ -440,10 +460,14 @@ public class AreaStaffService  extends TreeService<AreaStaffDao, AreaStaffInfo>
                 AreaStaffInfo areaStaffInfo = this.saveAreaType(areaOfficeInfo, directorApplication.getArea().getId());
                 //添加地区负责人和区域员工分支
                 AreaStaffInfo areaMasterInfo = this.saveMasterType(areaStaffInfo);
+                //如果地区员工标签不存在,则需添加标签
+                this.saveStaffType(areaStaffInfo);
                 this.saveUser(areaMasterInfo,user);
             }
         }
-        return null;
+        map.put("success",true);
+        map.put("message","添加成功");
+        return map;
     }
 
     /**
@@ -467,6 +491,28 @@ public class AreaStaffService  extends TreeService<AreaStaffDao, AreaStaffInfo>
         return areaMasterInfo;
     }
 
+
+    /**
+     * 添加地区负责人层级参数
+     * @param areaInfo
+     * @return
+     */
+    public AreaStaffInfo saveStaffType(AreaStaffInfo areaInfo){
+        AreaStaffInfo areaMasterInfo = new AreaStaffInfo();
+        areaMasterInfo.setParent(areaInfo);
+        if(StringUtils.isNotBlank(areaInfo.getHierarchy())){
+            areaMasterInfo.setHierarchy(String.valueOf(Integer.parseInt(areaInfo.getHierarchy()) + 1));
+        }else{
+            areaMasterInfo.setHierarchy("3");
+        }
+        areaMasterInfo.setStandardDetail("地区员工");
+        areaMasterInfo.setType("staff");
+        areaMasterInfo.setOrderNum(areaMasterInfo.getParent().getOrderNum() + "01");
+        areaMasterInfo.setCompanyId(UserUtils.getSelectCompany().getId());
+        super.save(areaMasterInfo);
+        return areaMasterInfo;
+    }
+
     /**
      * 添加地区信息参数
      * @param officeInfo

+ 6 - 1
src/main/java/com/jeeplus/modules/signatureManagement/electronicSignature/service/DistrictDirectorApplicationService.java

@@ -325,7 +325,12 @@ public class DistrictDirectorApplicationService extends CrudService<DistrictDire
                     if ("yes".equals(directorApplication.getAct().getFlag())) {
                         //审核通过处理
                         //根据申请人的隶属部门和申请地区查询是否存在该人员信息,若不存在则进行添加
-                        areaStaffService.disposeAreaMaster(directorApplication);
+                        Map<String, Object> stringObjectMap = areaStaffService.disposeAreaMaster(directorApplication);
+                        Boolean success = (Boolean) stringObjectMap.get("success");
+                        String message = (String) stringObjectMap.get("message");
+                        if(! success){
+                            return message;
+                        }
                         notifyRole = "地区负责人申请-"+directorApplication.getCreateBy().getName()+"-负责地区:"+directorApplication.getArea().getName()+"审核完成";
                         workActivityProcess.setIsApproval("1");
                     } else {

+ 5 - 4
src/main/resources/mappings/modules/areaStaff/AreaStaffDao.xml

@@ -222,14 +222,15 @@
 		SELECT <include refid="workReviewStandardColumns"/>
 		FROM sys_area_staff a
 		<where>
-			<if test="parentIdList!=null and parentIdList.size!=0">
-				a.id in
+			del_flag ='0' and
+			(<if test="parentIdList!=null and parentIdList.size!=0">
+				 a.id in
 				<foreach collection="parentIdList" item="parentId" separator="," open="(" close=")">
 					#{parentId}
 				</foreach>
 			</if>
-			AND del_flag ='0'
-			AND parent_ids like concat('%',#{parentIds},'%')
+			or parent_ids like concat('%',#{parentIds},'%')
+			)
 		</where>
 	</select>
 

+ 2 - 2
src/main/webapp/WEB-INF/tags/sys/treeselectStaffArea.tag

@@ -65,7 +65,7 @@
 								top.layer.msg("不能选择根节点("+nodes[i].name+")请重新选择。", {icon: 0});
 								return false;
 							}
-							if (nodes[i].isParent){
+							/*if (nodes[i].isParent){
 								var id = nodes[i].id;
 								var pid = nodes[i].pIds;
 								if(id.indexOf("-") == -1){	//如果id中包含-,则表示该地区为最下级地区
@@ -75,7 +75,7 @@
 										return false;
 									}
 								}
-							}
+							}*/
 							ids.push(nodes[i].id);
 							names.push(nodes[i].name);//<c:if test="${!checked}">
 							break; // 如果为非复选框选择,则返回第一个选择  </c:if>

+ 2 - 0
src/main/webapp/webpage/modules/areaStaff/areaStaffSecondForm.jsp

@@ -60,6 +60,8 @@
 				async: false
 			}).success(function (result) {
 				if(!result.success){
+					$("#areaId").val("")
+					$("#areaName").val("")
 					top.layer.msg(result.message, {icon: 0});
 					return false;
 				}

+ 53 - 0
src/main/webapp/webpage/modules/signatureManagement/electronicSignature/ElectronicSignatureList.jsp

@@ -233,6 +233,58 @@
                 }
             });
         }
+        function openDialogDis(title,url,width,height,target){
+            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: false, //开启最大化最小化按钮
+                content: url ,
+                skin:"three-btns",
+                btn: ['送审','关闭'],
+                btn1: 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中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2: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中展示
+                    if(iframeWin.contentWindow.doSubmit(3) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn3: function(index){
+                }
+            });
+
+        }
     </script>
     <style>
         body{
@@ -332,6 +384,7 @@
                             <table:addRow url="${ctx}/electronicSignature/electronicSignature/form" title="电子印章申请"></table:addRow><!-- 增加按钮 -->
                         </shiro:hasPermission>
                         <button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
+                        <button class="layui-btn layui-btn-sm layui-bg-blue" title="地区负责人申请" onclick="openDialogDis('地区负责人申请','${ctx}/districtDirectorApplication/districtDirectorApplication/form','95%','95%')">&nbsp;地区负责人申请</button>
                     </div>
                     <div style="clear: both;"></div>
                 </div>