组织查询修改,单位查询修改,组织置顶添加, 单位置顶添加, 行政区划查询修改

master
Xusan 2024-05-14 15:09:10 +08:00
parent e02196e95f
commit 51b26c9995
21 changed files with 90293 additions and 90234 deletions

180278
sql/data.sql

File diff suppressed because it is too large Load Diff

View File

@ -9,6 +9,7 @@ CREATE TABLE "FXKH_TXL"."ADDRESS_BOOK"
"POSITION" VARCHAR(50),
"COMMENTS" VARCHAR(200),
"URL" VARCHAR(200),
"ADCD" VARCHAR(50),
"SORT" INTEGER DEFAULT 0,
"V" INTEGER DEFAULT 0,
NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
@ -19,6 +20,7 @@ COMMENT ON COLUMN "FXKH_TXL"."ADDRESS_BOOK"."FAXES" IS '传真';
COMMENT ON COLUMN "FXKH_TXL"."ADDRESS_BOOK"."NAME" IS '姓名';
COMMENT ON COLUMN "FXKH_TXL"."ADDRESS_BOOK"."ORGANIZATION" IS '组织';
COMMENT ON COLUMN "FXKH_TXL"."ADDRESS_BOOK"."PHONE" IS '手机号';
COMMENT ON COLUMN "FXKH_TXL"."ADDRESS_BOOK"."ADCD" IS '行政区划';
COMMENT ON COLUMN "FXKH_TXL"."ADDRESS_BOOK"."POSITION" IS '职务';
COMMENT ON COLUMN "FXKH_TXL"."ADDRESS_BOOK"."SORT" IS '序号';
COMMENT ON COLUMN "FXKH_TXL"."ADDRESS_BOOK"."TEL" IS '电话';
@ -51,6 +53,34 @@ COMMENT ON COLUMN "FXKH_TXL"."UNIT_DICT"."SORT" IS '序号';
COMMENT ON COLUMN "FXKH_TXL"."UNIT_DICT"."O_ID" IS '组织类型Id';
CREATE TABLE "FXKH_TXL"."ORGANIZATION"
(
"ID" INTEGER IDENTITY(1, 1) NOT NULL,
"OBJ_ID" VARCHAR(50) NOT NULL,
"NAME" VARCHAR(50) NOT NULL,
"SORT" INTEGER DEFAULT 0,
NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
COMMENT ON TABLE "FXKH_TXL"."ORGANIZATION" IS '组织表';
COMMENT ON COLUMN "FXKH_TXL"."ORGANIZATION"."NAME" IS '名称';
COMMENT ON COLUMN "FXKH_TXL"."ORGANIZATION"."OBJ_ID" IS '编号';
COMMENT ON COLUMN "FXKH_TXL"."ORGANIZATION"."SORT" IS '序号';
CREATE TABLE "FXKH_TXL"."AB_UD_R"
(
"AD_ID" INTEGER,
"DICT_ID" INTEGER,
"TYPE" CHAR(1),
"SORT" INTEGER) STORAGE(ON "MAIN", CLUSTERBTR) ;
COMMENT ON TABLE "FXKH_TXL"."AB_UD_R" IS '用户单位字典关联表';
COMMENT ON COLUMN "FXKH_TXL"."AB_UD_R"."AD_ID" IS '联系人id';
COMMENT ON COLUMN "FXKH_TXL"."AB_UD_R"."DICT_ID" IS '字典id';
COMMENT ON COLUMN "FXKH_TXL"."AB_UD_R"."TYPE" IS '0:组织,1:单位';
COMMENT ON COLUMN "FXKH_TXL"."AB_UD_R"."SORT" IS '序号';
CREATE TABLE "FXKH_TXL"."FC"
(
"ID" INTEGER IDENTITY(1, 1) NOT NULL,
@ -82,21 +112,7 @@ COMMENT ON COLUMN "FXKH_TXL"."LOGIN_INFO"."CREATE_TIME" IS '新增时间';
COMMENT ON COLUMN "FXKH_TXL"."LOGIN_INFO"."TYPE" IS '0:密码登录 1:验证码登录';
CREATE TABLE "FXKH_TXL"."ORGANIZATION"
(
"ID" INTEGER IDENTITY(1, 1) NOT NULL,
"OBJ_ID" VARCHAR(50) NOT NULL,
"NAME" VARCHAR(50) NOT NULL,
"SORT" INTEGER DEFAULT 0,
NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
COMMENT ON TABLE "FXKH_TXL"."ORGANIZATION" IS '组织表';
COMMENT ON COLUMN "FXKH_TXL"."ORGANIZATION"."NAME" IS '名称';
COMMENT ON COLUMN "FXKH_TXL"."ORGANIZATION"."OBJ_ID" IS '编号';
COMMENT ON COLUMN "FXKH_TXL"."ORGANIZATION"."SORT" IS '序号';
CREATE TABLE "FXKH_TXL"."USER"
CREATE TABLE "FXKH_TXL"."USERS"
(
"ID" INTEGER IDENTITY(1, 1) NOT NULL,
"USERNAME" VARCHAR(50) NOT NULL,
@ -107,13 +123,13 @@ CREATE TABLE "FXKH_TXL"."USER"
"LAST_DATE" DATETIME(0),
NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
COMMENT ON TABLE "FXKH_TXL"."USER" IS '用户表';
COMMENT ON COLUMN "FXKH_TXL"."USER"."AB_ID" IS '通讯录id';
COMMENT ON COLUMN "FXKH_TXL"."USER"."USERNAME" IS '用户名';
COMMENT ON COLUMN "FXKH_TXL"."USER"."ROLE" IS '0:普通管理员,1:政区管理员,99:系统管理员';
COMMENT ON COLUMN "FXKH_TXL"."USER"."PASSWORD" IS '密码';
COMMENT ON COLUMN "FXKH_TXL"."USER"."LAST_DATE" IS '最后登录时间';
COMMENT ON COLUMN "FXKH_TXL"."USER"."SALT" IS '盐值';
COMMENT ON TABLE "FXKH_TXL"."USERS" IS '用户表';
COMMENT ON COLUMN "FXKH_TXL"."USERS"."AB_ID" IS '通讯录id';
COMMENT ON COLUMN "FXKH_TXL"."USERS"."USERNAME" IS '用户名';
COMMENT ON COLUMN "FXKH_TXL"."USERS"."ROLE" IS '0:普通管理员,1:政区管理员,99:系统管理员';
COMMENT ON COLUMN "FXKH_TXL"."USERS"."PASSWORD" IS '密码';
COMMENT ON COLUMN "FXKH_TXL"."USERS"."LAST_DATE" IS '最后登录时间';
COMMENT ON COLUMN "FXKH_TXL"."USERS"."SALT" IS '盐值';
CREATE TABLE "FXKH_TXL"."VERSIONS"
@ -136,15 +152,3 @@ COMMENT ON COLUMN "FXKH_TXL"."VERSIONS"."TYPE" IS '0:添加用户,1:修改用户
COMMENT ON COLUMN "FXKH_TXL"."VERSIONS"."VERSION" IS '版本号';
CREATE TABLE "FXKH_TXL"."AB_UD_R"
(
"AD_ID" INTEGER,
"DICT_ID" INTEGER,
"SORT" INTEGER) STORAGE(ON "MAIN", CLUSTERBTR) ;
COMMENT ON TABLE "FXKH_TXL"."AB_UD_R" IS '用户单位字典关联表';
COMMENT ON COLUMN "FXKH_TXL"."AB_UD_R"."AD_ID" IS '联系人id';
COMMENT ON COLUMN "FXKH_TXL"."AB_UD_R"."DICT_ID" IS '字典id';
COMMENT ON COLUMN "FXKH_TXL"."AB_UD_R"."SORT" IS '序号';

View File

@ -7,6 +7,7 @@ import com.whdc.model.entity.AddressBook;
import com.whdc.model.entity.User;
import com.whdc.model.enums.Role;
import com.whdc.model.enums.VersionsType;
import com.whdc.model.group.Find;
import com.whdc.model.group.Insert;
import com.whdc.model.group.Update;
import com.whdc.service.IAddressBookService;

View File

@ -1,6 +1,7 @@
package com.whdc.controller;
import cn.dev33.satoken.stp.StpUtil;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.whdc.model.entity.Organization;
import com.whdc.model.group.Insert;
@ -35,20 +36,8 @@ public class OrganizationController {
@ApiOperation(value = "查询所有")
@PostMapping(value = "find")
public ResultJson<Organization> find(@RequestBody Organization dto) {
LambdaQueryChainWrapper<Organization> query = service.lambdaQuery();
String name = dto.getName();
if (StringUtils.isNotBlank(name)){
query.like(Organization::getName,name);
}
String objId = dto.getObjId();
if (StringUtils.isNotBlank(objId)){
query.eq(Organization::getObjId,objId);
}
query.orderByAsc(Organization::getSort);
return ResultJson.ok(query.list());
public ResultJson<Organization> find() {
return ResultJson.ok(service.findByUserId(String.valueOf(StpUtil.getLoginId())));
}

View File

@ -15,6 +15,6 @@ public interface OrganizationMapper extends BaseMapper<Organization> {
IPage<Organization> page(@Param("page") IPage<Organization> page, @Param("dto") Organization dto);
List<Organization> find(@Param("dto") Organization dto);
List<Organization> findByUserId(@Param("userId") String userId);
}

View File

@ -10,7 +10,7 @@ import lombok.Data;
@Data
public class AddressBootDto extends FindPageDto {
@ApiModelProperty(value = "用户单位id")
@ApiModelProperty(value = "用户单位id 或 组织id")
private String dictId;
@ApiModelProperty(value = "用户名称")
@ -18,4 +18,10 @@ public class AddressBootDto extends FindPageDto {
@ApiModelProperty(value = "用户手机号")
private String phone;
@ApiModelProperty(value = "0:组织,1:单位")
private String type;
@ApiModelProperty(value = "行政区划")
private String adcd;
}

View File

@ -49,6 +49,10 @@ public class AddressBook extends Model<AddressBook> implements Serializable {
@ApiModelProperty(value = "电话")
private String tel;
@TableField("ADCD")
@ApiModelProperty(value = "行政区划")
private String adcd;
@TableField("FAXES")
@ApiModelProperty(value = "传真")
private String faxes;

View File

@ -49,6 +49,7 @@ public class Fc extends Model<Fc> implements Serializable {
private Integer sort;
@TableField("TYPE")
@ApiModelProperty(value = "0:常用联系人,1:置顶联系人")
@ApiModelProperty(value = "0:常用联系人,1:置顶联系人,2: 组织置顶,3: 单位置顶")
@NotNull(message = "排序类型不能为空", groups = {Insert.class,Update.class})
private String type;
}

View File

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.whdc.model.group.Insert;
import com.whdc.model.group.Update;
import com.whdc.model.vo.AdcdTree;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -16,6 +17,7 @@ import lombok.experimental.Accessors;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
/**
@ -50,4 +52,16 @@ public class Organization extends Model<Organization> implements Serializable {
@ApiModelProperty(value = "序号")
private Integer sort;
@TableField(exist = false)
@ApiModelProperty(value = "置顶排序序号")
private Integer fsort;
@TableField(exist = false)
@ApiModelProperty(value = "单位")
private List<UnitDict> unitDicts;
@TableField(exist = false)
@ApiModelProperty(value = "行政区划")
private List<AdcdTree> adinfoList;
}

View File

@ -52,4 +52,8 @@ public class UnitDict extends Model<UnitDict> implements Serializable {
// @ApiModelProperty(value = "1:省防指,2: 省防办,3: 省防指成员单位,4: 市、县防指、防办, 5: 主要湖泊及涉湖泵站,6:重要提防,7: 主要蓄滞洪区,8: 大型水库大坝")
@ApiModelProperty(value = "组织类型Id")
private Integer OId;
@TableField(exist = false)
@ApiModelProperty(value = "置顶排序")
private Integer fsort;
}

View File

@ -24,7 +24,7 @@ import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(description = "用户表")
@TableName("FXKH_TXL.USER")
@TableName("FXKH_TXL.USERS")
public class User extends Model<User> implements Serializable {
private static final long serialVersionUID = 1L;

View File

@ -21,4 +21,5 @@ public interface IOrganizationService extends IService<Organization> {
// 获取所有规则
List<Organization> find(Organization dto);
List<Organization> findByUserId(String userId);
}

View File

@ -6,6 +6,7 @@ import com.whdc.mapper.AddressBookMapper;
import com.whdc.model.dto.AddressBootDto;
import com.whdc.model.entity.AddressBook;
import com.whdc.service.IAddressBookService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@ -23,6 +24,12 @@ public class AddressBookServiceImpl extends ServiceImpl<AddressBookMapper, Addre
@Override
public IPage<AddressBook> page(AddressBootDto dto) {
String adcd = dto.getAdcd();
if (StringUtils.isNotBlank(adcd)) {
}
return baseMapper.page(dto.getPage(), dto);
}

View File

@ -61,24 +61,12 @@ public class AdinfoServiceImpl extends ServiceImpl<AdinfoMapper, Adinfo> impleme
).collect(Collectors.toList());
}
// 省 42 2000000000000
Map<String, AdcdTree> province = new HashMap<>();
// 市 4205 00000000000
Map<String, List<AdcdTree>> city = new HashMap<>();
// 县 421122 000000000
Map<String, List<AdcdTree>> county = new HashMap<>();
// 镇 421122100 000000
Map<String, List<AdcdTree>> town = new HashMap<>();
// 村 421122100201 000
Map<String, List<AdcdTree>> village = new HashMap<>();
// 组 421122100201100
Map<String, List<AdcdTree>> group = new HashMap<>();
List<AdcdTree> tree = new ArrayList<>();
for (Adinfo adinfo : list) {
@ -89,41 +77,15 @@ public class AdinfoServiceImpl extends ServiceImpl<AdinfoMapper, Adinfo> impleme
// 判断行政区划编码
String provinceStr = ad.substring(0, 2);
String cityStr = ad.substring(0, 4);
String countyStr = ad.substring(0, 6);
String townStr = ad.substring(0, 9);
String villageStr = ad.substring(0, 12);
if ("0000000000000".equals(ad.substring(2))) { // 省
adcdTree.setAdlevel(0);
adcdTree.setAdcdChildren(city.get(provinceStr));
// province.put(provinceStr, adcdTree);
tree.add(adcdTree);
} else if ("00000000000".equals(ad.substring(4))) { // 市
if ("00000000000".equals(ad.substring(4))) { // 市
adcdTree.setAdlevel(1);
adcdTree.setAdcdChildren(county.get(cityStr));
addTree(city, provinceStr, adcdTree);
} else if ("000000000".equals(ad.substring(6))) { // 县
adcdTree.setAdlevel(2);
adcdTree.setAdcdChildren(town.get(countyStr));
addTree(county, cityStr, adcdTree);
} else if ("000000".equals(ad.substring(9))) { // 镇
adcdTree.setAdlevel(3);
adcdTree.setAdcdChildren(village.get(townStr));
addTree(town, countyStr, adcdTree);
} else if ("000".equals(ad.substring(12))) { // 村
adcdTree.setAdlevel(4);
adcdTree.setAdcdChildren(group.get(villageStr));
addTree(village, townStr, adcdTree);
} else { // 组
adcdTree.setAdlevel(5);
adcdTree.setAdcdChildren(null);
addTree(group, villageStr, adcdTree);
}
}

View File

@ -5,10 +5,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.whdc.mapper.OrganizationMapper;
import com.whdc.model.entity.Organization;
import com.whdc.model.entity.UnitDict;
import com.whdc.model.vo.AdcdTree;
import com.whdc.service.IAdinfoService;
import com.whdc.service.IOrganizationService;
import com.whdc.service.IUnitDictService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* <p>
@ -20,16 +27,41 @@ import java.util.List;
@Service
public class OrganizationServiceImpl extends ServiceImpl<OrganizationMapper, Organization> implements IOrganizationService {
@Autowired
private IUnitDictService unitDictService;
@Autowired
private IAdinfoService adinfoService;
@Override
public IPage<Organization> page(Organization dto) {
return baseMapper.page(new Page<>(), dto);
}
@Override
public List<Organization> find(Organization dto) {
return baseMapper.find(dto);
return null;
}
@Override
public List<Organization> findByUserId(String userId) {
List<Organization> organizations = baseMapper.findByUserId(userId);
List<UnitDict> list = unitDictService.list();
List<AdcdTree> tree = adinfoService.tree(null, null);
Map<Integer, List<UnitDict>> collect = list.stream().collect(Collectors.groupingBy(UnitDict::getOId));
organizations.forEach(organization -> {
List<UnitDict> unitDicts = collect.get(organization.getId());
organization.setUnitDicts(unitDicts);
String name = organization.getName();
if (name.contains("市") && name.contains("县")){
organization.setAdinfoList(tree);
}
});
return organizations;
}

View File

@ -28,7 +28,7 @@ import java.util.UUID;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
public static final String DEFAULT_PASSWORD = "Fxhk@123456";
public static final String DEFAULT_PASSWORD = "Fxkh@123456";
@Override
public IPage<User> page(User dto) {

View File

@ -1,5 +1,7 @@
server:
port: 20020
servlet:
context-path: /fxkhtxl
spring:
#数据库配置

View File

@ -13,9 +13,15 @@
<if test="dto.dictId != null and dto.dictId != '' ">
AND R.DICT_ID = #{dto.dictId}
</if>
<if test="dto.type != null and dto.type != '' ">
AND R.TYPE = #{dto.type}
</if>
<if test="dto.name != null and dto.name != '' ">
AND AB.NAME LIKE CONCAT('%', #{dto.name}, '%')
</if>
<if test="dto.adcd != null and dto.adcd != '' ">
AND AB.ADCD CONCAT('', #{dto.adcd}, '%')
</if>
<if test="dto.phone != null and dto.phone != '' ">
AND AB.PHONE = #{dto.phone}
</if>

View File

@ -8,6 +8,21 @@
<select id="find" resultType="com.whdc.model.entity.Organization">
select O.* from ORGANIZATION O
</select>
<select id="findByUserId" resultType="com.whdc.model.entity.Organization">
SELECT
O.*,
F.SORT FSORT
FROM
ORGANIZATION O
LEFT JOIN FC F ON F.AB_ID = O.ID
<where>
<if test="userId != null and userId != ''">
F.USER_ID = #{userId}
</if>
</where>
</select>
</mapper>

View File

@ -8,6 +8,17 @@
<select id="find" resultType="com.whdc.model.entity.UnitDict">
SELECT
UD.*,
F.SORT FSORT
FROM
UNIT_DICT UD
LEFT JOIN FC F ON F.AB_ID = O.ID
<where>
<if test="userId != null and userId != ''">
F.USER_ID = #{userId}
</if>
</where>
</select>
</mapper>

View File

@ -19,7 +19,7 @@
U.ROLE,
U.AB_ID.AB.NAME
FROM
USER U
USERS U
LEFT JOIN ADDRESS_BOOK AB ON U.AB_ID = AB.ID
WHERE
U.USERNAME = #{username}