Sfoglia il codice sorgente

1.修改机构代码

wks 2 anni fa
parent
commit
289c6f78fb

+ 4 - 0
src/main/java/com/ydtech/modules/admin/dao/SysDeptMapper.java

@@ -2,9 +2,13 @@ package com.ydtech.modules.admin.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ydtech.modules.admin.model.SysDept;
+import org.apache.ibatis.annotations.Param;
 
 public interface SysDeptMapper extends BaseMapper<SysDept> {
 
+
+    String getMaxId(@Param(value = "deptId") String deptId);
+
 }
 
 

+ 2 - 1
src/main/java/com/ydtech/modules/admin/service/SysDeptService.java

@@ -40,7 +40,8 @@ public interface SysDeptService extends IService<SysDept> {
 
     /**
      * 增加机构
-     * @param sysDept 机构信息
+     *
+     * @param sysDeptVo 机构信息
      */
     void addDept(SysDeptVo sysDeptVo);
 

+ 20 - 4
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptServiceImpl.java

@@ -29,6 +29,7 @@ import java.util.stream.Collectors;
 public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
         implements SysDeptService {
 
+
     @Override
     public List<SysDept> findTree(String deptId) {
         SysDept sysDept = getById(deptId);
@@ -46,10 +47,10 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
     public void addDept(SysDeptVo sysDeptVo) {
         SysDept sysDept = new SysDept();
         BeanUtils.copyProperties(sysDeptVo, sysDept);
-        String comlevel = sysDept.getComlevel();
+        String comlevel = ObjectUtils.isEmpty(sysDept.getComlevel()) ? "" : sysDept.getComlevel();
         String parentId = sysDept.getParentId();
 
-        String number = "9";
+        String number;
         if (comlevel.equals("2")) {
             AssertionUtils.isStringEmpty(sysDept.getProvince(), "二级机构份必填");
             number = sysDept.getProvince();
@@ -59,10 +60,25 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
         } else if (comlevel.equals("4")) {
             AssertionUtils.isStringEmpty(sysDept.getArea(), "四级机构区必填");
             number = sysDept.getArea();
+        } else {
+            String maxId = baseMapper.getMaxId(sysDept.getParentId());
+            if (!maxId.equals("0")) {
+                String substring = maxId.substring(sysDept.getParentId().length() + 1);
+                int i = Integer.parseInt("1" + substring) + 1;
+                number = String.valueOf(i);
+            } else {
+                number = "101";
+            }
         }
 
         String substring = number.substring(number.length() - 2);
-        String serialNumber = parentId + substring;
+        String serialNumber;
+        if ("M,D".contains(sysDeptVo.getDeptType())) {
+            serialNumber = parentId + sysDeptVo.getDeptType() + substring;
+        } else {
+            serialNumber = parentId + substring;
+        }
+
         sysDept.setId(serialNumber);
 
         SysDept dept = getById(sysDept.getId());
@@ -132,7 +148,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
         if (deptId == null) return "";
         String result = "00";
         QueryWrapper<SysDept> qw = new QueryWrapper<>();
-        qw.like(StringUtils.isNotEmpty(deptId), "id", deptId + "D%");
+        qw.likeRight(StringUtils.isNotEmpty(deptId), "id", deptId + "D%");
 
         qw.select("IFNULL(MAX(id),0) maxid");
         Map<String, Object> m = getMap(qw);

+ 50 - 0
src/main/resources/mapper/modules/admin/SysDeptMapper.xml

@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.admin.dao.SysDeptMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.SysDept">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="parentId" column="parent_id" jdbcType="VARCHAR"/>
+            <result property="orderNum" column="order_num" jdbcType="INTEGER"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="lastUpdateBy" column="last_update_by" jdbcType="VARCHAR"/>
+            <result property="lastUpdateTime" column="last_update_time" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="TINYINT"/>
+            <result property="comtype" column="comtype" jdbcType="VARCHAR"/>
+            <result property="comlevel" column="comlevel" jdbcType="VARCHAR"/>
+            <result property="address" column="address" jdbcType="VARCHAR"/>
+            <result property="leadername" column="leadername" jdbcType="VARCHAR"/>
+            <result property="leaderphone" column="leaderphone" jdbcType="VARCHAR"/>
+            <result property="comattribute" column="comattribute" jdbcType="VARCHAR"/>
+            <result property="isstop" column="isstop" jdbcType="VARCHAR"/>
+            <result property="deptCode" column="dept_code" jdbcType="VARCHAR"/>
+            <result property="province" column="province" jdbcType="VARCHAR"/>
+            <result property="city" column="city" jdbcType="VARCHAR"/>
+            <result property="area" column="area" jdbcType="VARCHAR"/>
+            <result property="house" column="house" jdbcType="VARCHAR"/>
+            <result property="deptType" column="dept_type" jdbcType="VARCHAR"/>
+            <result property="managementFee" column="management_fee" jdbcType="DOUBLE"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,name,parent_id,
+        order_num,create_by,create_time,
+        last_update_by,last_update_time,del_flag,
+        comtype,comlevel,address,
+        leadername,leaderphone,comattribute,
+        isstop,dept_code,province,
+        city,area,house,
+        dept_type,management_fee
+    </sql>
+
+    <select id="getMaxId" resultType="java.lang.String">
+        SELECT IFNULL(MAX(id), 0) maxid
+        FROM `sys_dept`
+        WHERE parent_id = #{deptId}
+    </select>
+
+</mapper>