Browse Source

部门新增字段显示标识

anderx 3 years ago
parent
commit
b1ee33aa8c

+ 2 - 0
src/main/java/com/goafanti/common/dao/DepartmentMapper.java

@@ -103,4 +103,6 @@ public interface DepartmentMapper {
 
 
     List<AdminCustomerBo> AlldepCount(@Param("depIds")List<Department> depIds ,@Param("startTime")String startTime, @Param("endTime")String endTime);
+
+    Department selectByDepNo(String superId);
 }

+ 23 - 4
src/main/java/com/goafanti/common/mapper/DepartmentMapper.xml

@@ -19,11 +19,12 @@
     <result column="province" jdbcType="INTEGER" property="province" />
     <result column="working_hours_type" jdbcType="INTEGER" property="workingHoursType" />
     <result column="hide_sign" jdbcType="INTEGER" property="hideSign" />
+    <result column="lvl" jdbcType="INTEGER" property="lvl" />
   </resultMap>
   <sql id="Base_Column_List">
     id, create_id, create_time, update_time, deleted_sign, `name`, `type`, manager_id,
     dep_no, super_id, remarks, `status`, abbreviation, finance_id, province, working_hours_type,
-    hide_sign
+    hide_sign, lvl
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
     select
@@ -41,13 +42,15 @@
       `type`, manager_id, dep_no,
       super_id, remarks, `status`,
       abbreviation, finance_id, province,
-      working_hours_type, hide_sign)
+      working_hours_type, hide_sign, lvl
+      )
     values (#{id,jdbcType=VARCHAR}, #{createId,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
       #{updateTime,jdbcType=TIMESTAMP}, #{deletedSign,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR},
       #{type,jdbcType=VARCHAR}, #{managerId,jdbcType=VARCHAR}, #{depNo,jdbcType=VARCHAR},
       #{superId,jdbcType=VARCHAR}, #{remarks,jdbcType=VARCHAR}, #{status,jdbcType=VARCHAR},
       #{abbreviation,jdbcType=VARCHAR}, #{financeId,jdbcType=VARCHAR}, #{province,jdbcType=INTEGER},
-      #{workingHoursType,jdbcType=INTEGER}, #{hideSign,jdbcType=INTEGER})
+      #{workingHoursType,jdbcType=INTEGER}, #{hideSign,jdbcType=INTEGER}, #{lvl,jdbcType=INTEGER}
+      )
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.Department">
     insert into department
@@ -103,6 +106,9 @@
       <if test="hideSign != null">
         hide_sign,
       </if>
+      <if test="lvl != null">
+        lvl,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -156,6 +162,9 @@
       <if test="hideSign != null">
         #{hideSign,jdbcType=INTEGER},
       </if>
+      <if test="lvl != null">
+        #{lvl,jdbcType=INTEGER},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.Department">
@@ -209,6 +218,9 @@
       <if test="hideSign != null">
         hide_sign = #{hideSign,jdbcType=INTEGER},
       </if>
+      <if test="lvl != null">
+        lvl = #{lvl,jdbcType=INTEGER},
+      </if>
     </set>
     where id = #{id,jdbcType=VARCHAR}
   </update>
@@ -229,7 +241,8 @@
       finance_id = #{financeId,jdbcType=VARCHAR},
       province = #{province,jdbcType=INTEGER},
       working_hours_type = #{workingHoursType,jdbcType=INTEGER},
-      hide_sign = #{hideSign,jdbcType=INTEGER}
+      hide_sign = #{hideSign,jdbcType=INTEGER},
+      lvl = #{lvl,jdbcType=INTEGER}
     where id = #{id,jdbcType=VARCHAR}
   </update>
 
@@ -519,5 +532,11 @@
       </foreach>
     </if>
   </select>
+  <select id="selectByDepNo" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List"/>
+    from department where super_id=  #{superId}
+    order by dep_no desc limit 1
+  </select>
 
 </mapper>

+ 13 - 0
src/main/java/com/goafanti/common/model/Department.java

@@ -93,6 +93,11 @@ public class Department implements Serializable {
      */
     private Integer hideSign;
 
+    /**
+     * 层级
+     */
+    private Integer lvl;
+
     private static final long serialVersionUID = 1L;
 
     public String getId() {
@@ -230,4 +235,12 @@ public class Department implements Serializable {
     public void setHideSign(Integer hideSign) {
         this.hideSign = hideSign;
     }
+
+    public Integer getLvl() {
+        return lvl;
+    }
+
+    public void setLvl(Integer lvl) {
+        this.lvl = lvl;
+    }
 }

+ 9 - 0
src/main/java/com/goafanti/organization/bo/OrganizationListOut.java

@@ -42,6 +42,15 @@ public class OrganizationListOut {
 	private Integer hideSign;
 	private Integer workingHoursType;
 	private String workingHoursName;
+	private Integer lvl;
+
+	public Integer getLvl() {
+		return lvl;
+	}
+
+	public void setLvl(Integer lvl) {
+		this.lvl = lvl;
+	}
 
 	public Integer getHideSign() {
 		return hideSign;

+ 5 - 14
src/main/java/com/goafanti/organization/controller/AdminOrganizationController.java

@@ -58,14 +58,7 @@ public class AdminOrganizationController extends BaseApiController{
 			res.getError().add(buildError("","部门已存在"));
 			return res;
 		}
-		String sdepNo=departmentMapper.selectDepNo(superId);
-		int count=departmentMapper.selectDepNoCount(superId);
-		if((count+1)>99){
-			res.getError().add(buildError("","每层最多存在99个子类"));
-			return res;
-		}
-
-			organizationService.addOrganization(name, managerId, type, superId, remarks,sdepNo,count,workingHoursType,hideSign);
+		organizationService.addOrganization(name, managerId, type, superId, remarks,workingHoursType,hideSign);
 
 		return res;
 	}
@@ -91,17 +84,15 @@ public class AdminOrganizationController extends BaseApiController{
 		if(StringUtils.isBlank(name) || StringUtils.isBlank(type)
 				|| StringUtils.isBlank(managerId)|| StringUtils.isBlank(superId)
 				|| StringUtils.isBlank(status)|| StringUtils.isBlank(remarks)){
-			res.getError().add(buildError(ErrorConstants.PARAM_ERROR,"参数"));
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR,""));
 			return res;
 		}
-		String sdepNo=departmentMapper.selectDepNo(superId);//No
-		int count=departmentMapper.selectDepNoCount(superId);//14
-		if((count+1)>99){
-			res.getError().add(buildError("每层最多存在99个子类"));
+		if (id ==superId){
+			res.getError().add(buildError("不能设置自己为上级"));
 			return res;
 		}
 		int i=organizationService.updateOrganization(name, type, managerId, superId, status, province,remarks,id,
-				sdepNo,count,abbreviation,financeId,workingHoursType,hideSign);
+				abbreviation,financeId,workingHoursType,hideSign);
 		return res.data(i);
 	}
 

+ 2 - 2
src/main/java/com/goafanti/organization/service/OrganizationService.java

@@ -27,7 +27,7 @@ public interface OrganizationService {
 	 * @param desc 组织职能说明
 	 * @return
 	 */
-	int addOrganization(String name,String managerId,String type,String superId,String desc,String sdepNo,Integer count,
+	int addOrganization(String name,String managerId,String type,String superId,String desc,
 						Integer workingHoursType,Integer hideSign);
 	/**
 	 * 模糊查询负责人名称
@@ -41,6 +41,6 @@ public interface OrganizationService {
 	int deleteById(String id);
 
 	int updateOrganization(String name,String type,String managerId,String superId,String status,Integer province,
-			String remarks,String id,String sdepNo,Integer count,String abbreviation,String financeId,Integer workingHoursType,Integer hideSign);
+			String remarks,String id,String abbreviation,String financeId,Integer workingHoursType,Integer hideSign);
 
 }

+ 39 - 9
src/main/java/com/goafanti/organization/service/impl/OrganizationServiceImpl.java

@@ -70,9 +70,8 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 	 *
 	 */
 	@Override
-	public int addOrganization( String name, String managerId, String type, String superId, String remarks,String sdepNo
-			,Integer count,Integer workingHoursType,Integer hideSign) {
-
+	public int addOrganization( String name, String managerId, String type, String superId, String remarks,Integer workingHoursType,Integer hideSign) {
+		Department superDep=departmentMapper.selectByPrimaryKey(superId);
 		String id = UUID.randomUUID().toString();
 		Date now = new Date();
 		Department dep=new Department();
@@ -83,9 +82,11 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 		dep.setUpdateTime(now);
 		dep.setDeletedSign(0);
 		dep.setName(name);
+		dep.setLvl(superDep.getLvl()+1);
 		dep.setType(type);
 		dep.setManagerId(managerId);
-		dep.setDepNo(countDepNo(sdepNo,count));
+		String depNo = getMaxDep(superDep);
+		dep.setDepNo(depNo);
 	//	superId=departmentMapper.selectIdByName(superId);
 		dep.setSuperId(superId);
 		dep.setRemarks(remarks);
@@ -95,6 +96,26 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 		departmentMapper.insertSelective(dep);
 		return 1;
 	}
+
+	private String getMaxDep(Department superDep) {
+		String sdepNo=superDep.getDepNo();
+		Department maxDep=departmentMapper.selectByDepNo(superDep.getId());
+		String depNo=new String();
+		if (maxDep==null){
+			depNo= sdepNo +"01";
+		}else {
+			String maxDepNo=maxDep.getDepNo();
+			Integer countNo=Integer.valueOf(maxDepNo.substring(maxDepNo.length()-3));
+			if (countNo<10){
+				depNo= sdepNo +"0"+countNo;
+			}else {
+				depNo= sdepNo +countNo;
+			}
+		}
+		return depNo;
+	}
+
+
 	@Override
 	public List<AdminListBo> selectName(String name) {
 		List<AdminListBo> list=departmentMapper.selectName(name);
@@ -113,8 +134,15 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 	}
 	@Override
 	public int updateOrganization(String name, String type, String managerId, String superId, String status,Integer province,
-			String remarks,String id,String sdepNo,Integer count,String abbreviation,String financeId,Integer workingHoursType,Integer hideSign) {
-		String deps = countDepNo(sdepNo,count);
+			String remarks,String id,String abbreviation,String financeId,Integer workingHoursType,Integer hideSign) {
+		//获取上级编号
+		Department superDep=departmentMapper.selectByPrimaryKey(superId);
+		String deps ="";
+		if(!name.equals("平台超管中心")){
+			getMaxDep(superDep);
+		}else {
+			deps="DP";
+		}
 		Date now=new Date();
 		Department dep=new Department();
 		dep.setName(name);
@@ -123,6 +151,7 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 		dep.setManagerId(managerId);
 		dep.setDepNo(deps);
 		dep.setSuperId(superId);
+		dep.setLvl(superDep.getLvl()+1);
 		dep.setStatus(status);
 		dep.setRemarks(remarks);
 		dep.setId(id);
@@ -133,7 +162,7 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 		dep.setWorkingHoursType(workingHoursType);
 		tOrderMidMapper.updateFinanceId(id,financeId);
 		int x=departmentMapper.updateByPrimaryKeySelective(dep);
-		updateLowerLevelNo(dep.getId(),dep.getDepNo());
+		updateLowerLevelNo(dep.getId(),dep.getDepNo(),dep.getLvl());
 		return x;
 	}
 
@@ -163,10 +192,11 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 		return dep;
 	}
 
-	private void updateLowerLevelNo(String id,String depNo) {
+	private void updateLowerLevelNo(String id,String depNo,Integer lvl) {
 		List<OrganizationListOut> Nos =departmentMapper.selectIDNBySuperId(id);
 		int i=1;
 		for (OrganizationListOut o : Nos) {
+			o.setLvl(lvl+1);
 			if(i<10){
 				String dep=depNo+"0"+i;
 				if(i>=10){
@@ -181,7 +211,7 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 				o.setDepNo(dep);
 			}
 			departmentMapper.updateByNumber(o);
-			updateLowerLevelNo(o.getId(),o.getDepNo());
+			updateLowerLevelNo(o.getId(),o.getDepNo(),o.getLvl());
 			i++;
 		}
 	}